php-fpm이 우리에게 추락하고 파일을 덤프했습니다.
/var/crash/_usr_sbin_php5-fpm.1002.crash
해당 파일에 몇 가지 정보가 있지만 내가 따르는 것은 base64로 인코딩 된 형식의 CoreDump 섹션에 있습니다. 충돌 당시 무엇이 실행되고 있는지 어떻게 알 수 있습니까?
답변
apport-retrace
도구에 여러 하위 종속성을 설치하지 않으려는 경우 apport 형식을 별도의 파일로 압축 해제 하고 평소 CoreDump
와 gdb
같이 덤프 만 사용할 수 있습니다.
apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
cd yourNewUnpackDirectoryHere/
gdb `cat ExecutablePath` CoreDump
(여기에서 물결표에주의하십시오!)-
bt
(출력 실제 역 추적)참고 :
apport-unpack
때로는 압축 풀기 작업에서 자체 충돌이 발생하지만 (apport는 xD 주변에서 모두 깨진 것처럼 보임) CoreDump 및 기타 파일이 있습니다. 무시하고 다른 .crash 파일을/var/crash
다른 곳으로 이동 한 후 삭제하십시오. 동일한 앱에서 새로운 충돌 보고서를 출력하는 시스템.
답변
라는 도구가 apport-retrace
.crash 파일을 읽고 완전히 상징적 인 스택 추적과 하나 채우기 그것은 당신을 허용하거나 실행 gdb
코어 덤프를 사용하여 세션. gdb 세션을 시작하려면을 실행하십시오 apport-retrace -g CRASHFILE.crash
. 좋은 스택 추적을 얻으려면 -dbg 패키지가 설치되어 있어야합니다.
(PHP 전문가는 아닙니다) 실제로 충돌을 일으키는 파일 중 하나에 작성한 것일 수 있습니다.