小编Ale*_*tar的帖子

如何从核心转储文件中识别导致崩溃的完整命令

使用 gdb 从核心转储文件中识别完整命令时出现问题\n崩溃的命令本身可能很长

\n

IE

\n
myCommand -f log/SlaRunTimeReport.rep -I input/myFile.txt -t output/myFile.txt\n
Run Code Online (Sandbox Code Playgroud)\n

但是当使用gdb识别位置\xe2\x80\x9c中的命令Core是由\xe2\x80\x9d生成的

\n

即通过执行

\n
gdb -c core.56536\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
GNU gdb (GDB) Red Hat Enterprise Linux 7.10-20.el7\n\n\xe2\x80\xa6.\n\nCore was generated by `myCommand -f log/SlaRunTimeReport.rep -I \ninput/myFile.t'.\n
Run Code Online (Sandbox Code Playgroud)\n

可以看到完整的命令(可执行文件+参数)被中间切掉了

\n
\xe2\x80\x98myCommand -f log/SlaRunTimeReport.rep -I input/myFile.t'\n
Run Code Online (Sandbox Code Playgroud)\n

另外使用字符串命令时,也无助于识别完整命令

\n
strings core.56536 | grep PMRunTimeReport\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n
myCommand \n\nmyCommand -f log/SlaRunTimeReport.rep -I input/myFile.t\n
Run Code Online (Sandbox Code Playgroud)\n

有没有办法从 coredump 文件中获取导致失败的完整命令

\n

提前致谢

\n

c c++ linux gdb coredump

4
推荐指数
1
解决办法
1915
查看次数

标签 统计

c ×1

c++ ×1

coredump ×1

gdb ×1

linux ×1