用strace运行程序生成core文件,GDB调试显示为strace,如何调试目标程序?
可以调试你的应用程序,具体操作步骤如下:
当通过strace /my/app启动程序时,崩溃生成的core文件包含了strace(父进程)与你的应用(子进程)的完整进程上下文,gdb默认会加载父进程的调试环境,因此需要手动切换到子进程并加载应用的符号表:
启动gdb,加载strace可执行文件和core文件:
gdb $(which strace) core使用
which strace能自动获取strace的绝对路径,避免手动输入错误。在gdb中查看core文件包含的所有进程(gdb中称为inferior):
info inferiors输出示例:
Num Description Executable 1 process 1234 /usr/bin/strace 2 process 1235 /my/app其中编号对应的就是你的应用进程。
切换到你的应用进程:
inferior <进程编号>比如对应上面的示例,执行
inferior 2。加载你的应用程序的符号表:
file /my/app完成以上步骤后,即可进行常规调试操作,例如查看崩溃堆栈:
bt或切换栈帧、检查变量等。
内容的提问来源于stack exchange,提问作者Baruch
相关产品推荐
相关产品推荐

