Alo*_*lon 6 c c++ linux gdb segmentation-fault
我有一个程序故意在一个线程上执行段错误,但是我遇到另一个线程正在执行段错误的问题,我想用 GDB 捕获它,我看到我可以:
handle SIGSEGV nostop noprint
Run Code Online (Sandbox Code Playgroud)
但我只想在故意这样做的线程上这样做..这可能吗?
我将解释:我有 2 个线程,一个线程是段错误(并恢复(mprotect 只读,然后释放内存)),工作正常,另一个线程执行其他操作,但遗憾的是,有一个错误,它是段错误,我想捕获该段错误,而不是其他线程中发生的其他段错误。
据我所知,这取决于操作系统,我假设 Linux 作为我的答案,答案是否定的!
Posix 异常每个线程可以有一个 sigmask,但每个任务只能有一个处理程序。所以不可能为每个线程设置不同的处理。sigaction 将在整个过程中处理它。所以我认为 gdb 没有办法改变这一点。