Start · Sprachen · PHP · Referenz · phpdbg_exec

phpdbg_exec

Funktion

Versucht, den Ausführungskontext des PHPDBG-Debuggers auf eine bestimmte Datei zu setzen.

seit PHP 5.6.0 Kategorie: misc

Signatur

phpdbg_exec(string $context): string|bool

Beschreibung

phpdbg_exec() ist eine Funktion der PHPDBG-Erweiterung und setzt den Ausführungskontext für die interaktive Debugger-Umgebung. Sie gibt an, welche PHP-Datei beim nächsten Ausführungsschritt geladen und debuggt werden soll.

Die Funktion ist ausschließlich im Kontext des PHPDBG-Debuggers (phpdbg-Binary) relevant und wird typischerweise in Debugger-Skripten oder Init-Dateien verwendet, um den Einstiegspunkt für eine Debug-Session programmatisch festzulegen. Außerhalb von PHPDBG hat der Aufruf keinen sinnvollen Effekt.

Im Erfolgsfall gibt die Funktion den zuvor gesetzten Ausführungskontext zurück, was das Überprüfen und Wechseln des Kontexts erleichtert. Gibt es keinen vorherigen Kontext, wird false zurückgegeben.

Diese Funktion ist Teil der phpdbg-Erweiterung, die seit PHP 5.6 im PHP-Kern integriert ist. Sie eignet sich für automatisierte Debugging-Workflows, bei denen der Kontext per Skript statt per interaktiver Eingabe gesetzt werden soll.

Parameter

Name Typ Default Beschreibung
$context Pflicht string Der Pfad zur PHP-Datei, die als Ausführungskontext für den Debugger gesetzt werden soll. Typischerweise ein absoluter oder relativer Dateipfad.

Rückgabewert

Typ
string|bool
Beschreibung
Gibt den zuvor gesetzten Ausführungskontext als string zurück, falls ein solcher existierte. Gab es keinen vorherigen Kontext, wird false zurückgegeben.

Beispiele

Ausführungskontext im PHPDBG-Init-Skript setzen

<?php
// In einer .phpdbginit-Datei oder einem Debugger-Steuerskript:
$previousContext = phpdbg_exec('/var/www/project/public/index.php');

if ($previousContext === false) {
    echo "Kein vorheriger Kontext vorhanden, neuer Kontext gesetzt." . PHP_EOL;
} else {
    echo "Vorheriger Kontext: " . $previousContext . PHP_EOL;
}
Kein vorheriger Kontext vorhanden, neuer Kontext gesetzt.

Wechsel des Ausführungskontexts

<?php
// Ersten Kontext setzen
phpdbg_exec('/var/www/project/src/bootstrap.php');

// Zu einem anderen Kontext wechseln und alten abfragen
$old = phpdbg_exec('/var/www/project/public/index.php');
echo "Vorheriger Kontext war: " . $old . PHP_EOL;
Vorheriger Kontext war: /var/www/project/src/bootstrap.php

// Wichtig · Fallstricke

Nur im PHPDBG-Kontext sinnvoll: Diese Funktion hat ausschließlich innerhalb der phpdbg-Debugger-Umgebung eine Wirkung. In einer normalen PHP-CLI- oder Webserver-Umgebung liefert sie zwar einen Rückgabewert, beeinflusst aber keine Ausführung.

Die Funktion steht nur zur Verfügung, wenn die phpdbg-Erweiterung geladen ist. Ein Aufruf außerhalb von PHPDBG kann zu unerwartetem Verhalten oder Fehlermeldungen führen. Es empfiehlt sich, vor dem Aufruf mit function_exists('phpdbg_exec') zu prüfen, ob die Funktion verfügbar ist.