Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 不停止的GDB回溯跟踪_C++_Multithreading_Gdb_Signals - Fatal编程技术网

C++ 不停止的GDB回溯跟踪

C++ 不停止的GDB回溯跟踪,c++,multithreading,gdb,signals,C++,Multithreading,Gdb,Signals,我试图让我的程序与GDB一起连续运行。 目前我有一个bash脚本,它用我的程序启动GDB,当它崩溃时,它会打印回溯并再次启动GDB(无止境循环) 现在,我为我的程序添加了一个信号处理程序,当处理程序从特定线程获得信号时,它会杀死这些线程。现在我可以实现GDB不会停止这样做: handle SIGSEGV nostop 但这导致了一个问题,我没有得到一个GDB回溯,我想在不停止程序的情况下自动打印(或者至少自动继续) 任何帮助都将不胜感激 继续使用handle从SEGV抑制普通停止。然后设置一个

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

现在,我为我的程序添加了一个信号处理程序,当处理程序从特定线程获得信号时,它会杀死这些线程。现在我可以实现GDB不会停止这样做:

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


任何帮助都将不胜感激

继续使用
handle
SEGV
抑制普通停止。然后设置一个符合您要求的捕捉点:

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

这将在
SIGSEGV
上打印回溯,但不会干扰正常操作。您可能还希望
处理SIGSEGV noprint

,因为您已经能够处理自己的SIGSEGV(从而颠覆GDB),将回溯转储放在SIGSEGV hander中而不是依赖外部工具是否有意义?我已经在我的处理程序中打印回溯,但它们没有GDB的详细