我想知道是否可以通过 GDB 启动应用程序,在 SegFault 上将回溯写入文件(稍后查看),然后在没有任何用户输入的情况下退出 GDB。
在从非交互式 session 启动操作系统时,我正在无限循环中从 shell 脚本运行应用程序(因此,如果它崩溃,它会重新加载)。该应用程序以不可重现的方式崩溃,因此我需要从崩溃中回溯以调试问题。理想情况下,我只需修改 shell 脚本以包含 GDB 调试 + 回溯功能,并保留崩溃后应用程序的自动重启。
这可能吗?
最佳答案
感谢 Aditya Kumar;可接受的解决方案:
gdb -batch -ex "run" -ex "bt" ${my_program} 2>&1 | grep -v ^"No stack."$
如果程序需要参数:
gdb -batch -ex "run" -ex "bt" --args ${my_program} param1 param2 \
param3 ... 2>&1 | grep -v ^"No stack."$
关于c++ - 没有用户输入的gdb回溯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20179153/