php-fpm 对我们崩溃并将文件转储到
/var/crash/_usr_sbin_php5-fpm.1002.crash
Run Code Online (Sandbox Code Playgroud)
该文件中有一些信息,但我所追求的是 base64 编码格式的 CoreDump 部分。如何读取崩溃时正在运行的内容?
sta*_*ter 37
如果您不想为apport-retrace工具安装一堆子依赖项,您可以将 apport 格式解包到单独的文件中,CoreDump并gdb像往常一样仅使用转储。
apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
cd yourNewUnpackDirectoryHere/
gdb `cat ExecutablePath` CoreDump (注意这里的波浪号!)
bt (输出实际回溯)
注意:apport-unpack有时会在解包操作时自行崩溃(apport 似乎到处都损坏了... xD),但是您的 CoreDump 和其他文件将在那里,只需忽略它并/var/crash在您将它们移至其他地方后删除所有 .crash 文件以允许系统从那里的相同应用程序输出新的崩溃报告。
sai*_*895 16
有一个工具apport-retrace可以读取 .crash 文件,并允许您使用全符号堆栈跟踪填充它或gdb使用核心转储运行会话。要启动 gdb 会话,请运行apport-retrace -g CRASHFILE.crash. 请注意,您需要安装 -dbg 软件包才能获得良好的堆栈跟踪。
话虽如此(我不是 PHP 专家),它实际上可能是您在导致崩溃的文件之一中编写的内容。