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

Was zum Debuggen des Swoole-Programms verwendet werden soll

angryTom
angryTomOriginal
2020-02-12 14:01:083403Durchsuche

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

gdbinit

(gdb) source /path/to/swoole-src/gdbinit

Haltepunkte setzen

Zum Beispiel co::sleep function

(gdb) b zim_swoole_coroutine_util_sleep

Alle Coroutinen und den Status des aktuellen Fortschritts drucken

(gdb) co_list 
coroutine 1 SW_CORO_YIELD
coroutine 2 SW_CORO_RUNNING

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

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

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

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!

Stellungnahme:
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