没有用户输入的gdb回溯?

Mat*_*zza 19 c++ linux bash gdb

我不知道是否有可能通过GDB启动应用程序,在一个段错误写回溯到一个文件(在稍后看),然后退出GDB完全不需要任何用户输入.

我在一个非交互式会话的操作系统启动时,在无限循环中运行一个来自shell脚本的应用程序(因此如果它崩溃了它重新加载).应用程序以不可重现的方式崩溃,因此我需要从崩溃中回溯以调试问题.理想情况下,我只需修改shell脚本以包含GDB调试+回溯功能,并在崩溃后保留应用程序的自动重启.

这可能吗?

Mat*_*zza 24

感谢Aditya Kumar; 可接受的方案

gdb -batch -ex "run" -ex "bt" ${my_program} 2>&1 | grep -v ^"No stack."$

  • 如果 `${my_program}` 接受参数,你可能想在 `${my_program}` 之前添加 `--args` (2认同)