Heim > PHP-Framework > Swoole > Was zum Debuggen des Swoole-Programms verwendet werden soll

Was zum Debuggen des Swoole-Programms verwendet werden soll

angryTom
Freigeben: 2020-02-12 14:01:08
Original
3366 Leute haben es durchsucht

Was zum Debuggen des Swoole-Programms verwendet werden soll

Was soll zum Debuggen des Swoole-Programms verwendet werden

Sie können GDB zum Debuggen des Swoole-Programms verwenden. gdb ist die Abkürzung für GNU Debugger, ein Programmier-Debugging-Tool.

Funktion von gdb:

1. Starten Sie das Programm und führen Sie es nach Ihren Wünschen gemäß den benutzerdefinierten Anforderungen aus.

2. Das debuggte Programm kann an dem vom Benutzer angegebenen Debugging-Haltepunkt gestoppt werden (der Haltepunkt kann ein bedingter Ausdruck sein).

3. Wenn das Programm stoppt, können Sie überprüfen, was zu diesem Zeitpunkt im Programm passiert ist. Sie können beispielsweise den Wert einer Variablen drucken.

4. Ändern Sie die Ausführungsumgebung variabler Programme dynamisch.

Empfohlenes Lernen: swoole-Tutorial

So verwenden Sie gdb zum Debuggen von swoole:

Geben Sie gdb ein

gdb php test.php
Nach dem Login kopieren

gdbinit

(gdb) source /path/to/swoole-src/gdbinit
Nach dem Login kopieren

Haltepunkte setzen

Zum Beispiel co::sleep function

(gdb) b zim_swoole_coroutine_util_sleep
Nach dem Login kopieren

Alle Coroutinen und den Status des aktuellen Fortschritts drucken

(gdb) co_list 
coroutine 1 SW_CORO_YIELD
coroutine 2 SW_CORO_RUNNING
Nach dem Login kopieren

Drucken der aktuelle Lauf Der Aufrufstapel der Coroutine

(gdb) co_bt 
coroutine cid:[2]
[0x7ffff148a100] Swoole\Coroutine->sleep(0.500000) [internal function]
[0x7ffff148a0a0] {closure}() /home/shiguangqi/php/swoole-src/examples/coroutine/exception/test.php:7 
[0x7ffff141e0c0] go(object[0x7ffff141e110]) [internal function]
[0x7ffff141e030] (main) /home/shiguangqi/php/swoole-src/examples/coroutine/exception/test.php:10
Nach dem Login kopieren

Drucken Sie den Aufrufstapel der angegebenen Coroutine-ID

(gdb) co_bt 1
[0x7ffff1487100] Swoole\Coroutine->sleep(0.500000) [internal function]
[0x7ffff14870a0] {closure}() /home/shiguangqi/php/swoole-src/examples/coroutine/exception/test.php:3 
[0x7ffff141e0c0] go(object[0x7ffff141e110]) [internal function]
[0x7ffff141e030] (main) /home/shiguangqi/php/swoole-src/examples/coroutine/exception/test.php:10
Nach dem Login kopieren

Drucken Sie den Status der seriellen Coroutine

(gdb) co_status 
     stack_size: 2097152
     call_stack_size: 1
     active: 1
     coro_num: 2
     max_coro_num: 3000
     peak_coro_num: 2
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas zum Debuggen des Swoole-Programms verwendet werden soll. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage