Gdb-Debugging-PHP findet problemlos den aktuell ausgeführten Code

little bottle
Freigeben: 2023-04-06 11:32:02
nach vorne
4297 Leute haben es durchsucht

Angenommen, es ist ein PHP-Skript online und eines Tages geht plötzlich etwas schief. Es wird nicht verarbeitet, aber der Prozess wird nicht beendet. Diese Situation kann auf einen abnormalen Ruhezustand oder eine Endlosschleife des Codes zurückzuführen sein, aber wie können wir sie lokalisieren? Was wir zu diesem Zeitpunkt am meisten wissen möchten, ist, was dieses Skript gerade tut. Dies ist nützlich, wenn gdb+zbacktrace verwendet wird.

Schreiben Sie zunächst ein Testskript test.php und eine Schlaffunktion darin. Sie können es auch in eine Endlosschleife ändern.

<?phpfunction Mecho($i){ echo $i.PHP_EOL;
}$i = 20;while($i>0){if($i%2==0){
  Mecho($i);
}sleep(100000);$i--;
}
Nach dem Login kopieren

zbacktrace ist im heruntergeladenen PHP-Quellcode-Paket verfügbar. Meine Umgebung ist neu installiert und die aktuelle PHP-Version ist php7.2.9

Direkte CLI-Ausführung test.php

php test.php
Nach dem Login kopieren

Suchen Sie dann den aktuellen PHP-Prozess

 

Dann verwenden Sie gdb zum Debuggen

gdb -p 56571
Nach dem Login kopieren

Debuggen

source /usr/local/src/php-7.2.9/.gdbinit
zbacktrace
Nach dem Login kopieren

Damals wusste ich, dass die Sleep-Funktion in Zeile 11 von test.php den Prozess in den Ruhezustand versetzt.

Verwandte Tutorials: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonGdb-Debugging-PHP findet problemlos den aktuell ausgeführten Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage