Maison  >  Article  >  cadre php  >  Quoi utiliser pour déboguer le programme swoole

Quoi utiliser pour déboguer le programme swoole

angryTom
angryTomoriginal
2020-02-12 14:01:083335parcourir

Quoi utiliser pour déboguer le programme swoole

Que utiliser pour déboguer le programme swoole

Vous pouvez utiliser GDB pour déboguer le programme swoole ? gdb est l'abréviation de GNU debugger, qui est un outil de débogage de programmation.

Fonction de gdb :

1. Démarrez le programme et exécutez-le comme vous le souhaitez selon les exigences définies par l'utilisateur.

2. Le programme débogué peut être arrêté au point d'arrêt de débogage spécifié par l'utilisateur (le point d'arrêt peut être une expression conditionnelle).

3. Lorsque le programme s'arrête, vous pouvez vérifier ce qui s'est passé dans le programme à ce moment-là. Par exemple, vous pouvez imprimer la valeur d'une variable.

4. Modifiez dynamiquement l'environnement d'exécution du programme variable.

Apprentissage recommandé : tutoriel swoole

Comment utiliser gdb pour déboguer swoole :

Entrez gdb

gdb php test.php

gdbinit

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

Définir des points d'arrêt

Par exemple, co::sleep function

(gdb) b zim_swoole_coroutine_util_sleep

Imprimer toutes les coroutines et l'état de la progression actuelle

(gdb) co_list 
coroutine 1 SW_CORO_YIELD
coroutine 2 SW_CORO_RUNNING

Imprimer l'exécution en cours La pile d'appels de la 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

Imprimer la pile d'appels de l'identifiant de coroutine spécifié

(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

Imprimer l'état de la coroutine série

(gdb) co_status 
     stack_size: 2097152
     call_stack_size: 1
     active: 1
     coro_num: 2
     max_coro_num: 3000
     peak_coro_num: 2

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn