Swoole 사용시 세그폴트가 발생하면 제때에 개발팀에 신고해주세요. gdb 도구를 사용하여 bt 정보의 복사본을 얻을 수 있습니다. gdb 추적을 사용하려면 swoole을 컴파일할 때 --enable-debug 매개변수를 추가해야 합니다.
gdb가 불편할 경우 안정적으로 재현할 수 있는 데모 프로그램을 제공할 수도 있습니다.
코어 덤프 열기
ulimit -c unlimited
gdb를 사용하여 코어 덤프 정보를 확인하세요. 코어 파일은 일반적으로 현재 디렉터리에 있습니다. 운영 체제에서 처리하여 코어 덤프 파일을 다른 디렉터리에 배치한 경우 해당 경로로 교체하세요
gdb php core gdb php /tmp/core.4596
콜 스택 정보를 보려면 gdb 아래에 bt를 입력하세요
(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
gdb에서 f 명령어를 사용하세요. 코드 스니펫을 확인하세요
(gdb)f 1 (gdb)f 0
함수 호출 스택 정보가 없다면 컴파일 도중 디버그 정보가 제거된 것일 수 있습니다. swoole 소스 디렉토리에서 Makefile을 수동으로 수정하고 CFLAGS를
CFLAGS = -Wall -pthread -g -O0
로 수정하세요. 권장 학습: swoole 비디오 튜토리얼
위 내용은 Swoole 오류를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!