Lorsqu'une erreur de segmentation se produit lors de l'utilisation de swoole, veuillez la signaler à l'équipe de développement à temps. Vous pouvez utiliser l'outil gdb pour obtenir une copie des informations BT. Pour utiliser le suivi gdb, vous devez ajouter le paramètre --enable-debug lors de la compilation de swoole.
Si gdb n'est pas pratique, vous pouvez également fournir un programme de démonstration qui peut être reproduit de manière stable
Ouvrir le vidage de mémoire
ulimit -c unlimited
Utilisez gdb pour afficher les informations de vidage de mémoire . Le fichier core se trouve généralement dans le répertoire courant. Si le système d'exploitation l'a traité et a placé le fichier core dump dans un autre répertoire, veuillez le remplacer par le chemin correspondant
gdb php core gdb php /tmp/core.4596
Entrez bt sous gdb pour afficher la pile d'appels. information
(gdb)bt Program terminated with signal 11, Segmentation fault. #0 0x00007f1cdbe205e0 in swServer_onTimer (reactor=<value optimized out>, event=...) at /usr/local/php/swoole-swoole-1.5.9b/src/network/Server.c:92 92 serv->onTimer(serv, timer_node->interval); Missing separate debuginfos, use: debuginfo-install php-cli-5.3.3-22.el6.x86_64
Utilisez la commande f dans gdb pour afficher le segment de code
(gdb)f 1 (gdb)f 0
S'il n'y a aucune information sur la pile d'appels de fonction, il se peut que les informations de débogage aient été supprimées lors de la compilation. Veuillez modifier manuellement le Makefile dans le répertoire source de swoole et modifier CFLAGS en
CFLAGS = -Wall -pthread -g -O0
Apprentissage recommandé : tutoriel vidéo swoole
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!