3
我正试图捕获GDB中的浮点异常(SIGFPE),而不是将它传递给进程并继续调试。 我给GDB这样的:当一个SIGFPE发生GDB停止在正确的位置GDB:捕获信号并继续调试
handle SIGFPE stop nopass
。问题是我不能也不知道如何继续调试。 我试图让GDB
continue
或
signal 0
,但它仍然挂在违规线,并拒绝继续。
有没有办法在接收到信号后继续调试?
我使用的是GDB 7.5.1,这是我自己编译的,我也尝试过使用我的12.04 Ubuntu发行版的GDB 7.4。两者都有相同的行为。
谢谢你的洞察力。采取你所说的话,我试图让GDB在处理接收到的信号后继续“处理SIGFPE nostop nopass”,然后试图继续,因此它在我恢复后第二次忽略信号。但是GDB接缝在此之后就会挂起,它甚至不能再次停顿。这将是非常简单的解决方案,现在我必须手动移动程序计数器。 – Sogartar 2013-03-27 17:28:29
那么这意味着没有办法以完全相同的方式执行程序而不跳过指令? – Sogartar 2013-03-27 17:38:01
@Sogartar你确实以完全相同的方式执行......并得到完全相同的结果。 – Ruslan 2017-06-29 11:32:52