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