我有一个程序故意在一个线程上出现段错误,但我有一个问题,另一个线程出现段错误,我想用 GDB 捕获它,我看到我可以:
handle SIGSEGV nostop noprint
但我只想在故意这样做的线程上这样做..有可能吗?
我会解释一下:
我有 2 个线程,一个线程出现段错误(并恢复(mprotect 只读,然后释放内存)),工作正常,另一个线程执行其他操作,但遗憾的是,有一个错误并且出现段错误,我想捕获该段错误,而不是其他线程中发生的其他错误。
据我所知,这取决于操作系统,我假设 Linux 作为我的答案,答案是否定的!
Posix 异常每个线程可以有一个 sigmask,但每个任务只能有一个处理程序。所以不可能为每个线程设置不同的处理。 sigaction 将在整个过程中处理它。所以我认为 gdb 没有办法改变这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)