GDB回溯没有停止

时间:2015-03-10 19:23:47

标签: c++ multithreading gdb signals

我试图让我的程序继续与GDB一起运行。 目前我有一个bash脚本,用我的程序启动GDB,当它崩溃时会打印回溯并再次启动GDB(无限循环)。

现在我为我的程序添加了一个信号处理程序,当处理程序从它们获取信号时,它会杀死特定的线程。现在我可以实现GDB不会因此而停止:

handle SIGSEGV nostop

但这引出了一个问题,即我没有得到GDB回溯,我想在不停止程序的情况下自动打印(或者至少自动继续)。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

继续使用handle来阻止来自SEGV的普通停靠。然后设置一个符合你想要的捕获点:

(gdb) catch signal SIGSEGV
(gdb) commands
    >   silent  # this bit is optional
    >   bt
    >   continue
    >   end

这将在SIGSEGV上打印回溯,但不会干扰正常操作。您可能还需要handle SIGSEGV noprint

相关问题