5
我在Objective-C應用程序中使用信號處理程序來捕獲致命錯誤,如SIGSEGV
,SIGBUS
等。Xcode:GDB和信號處理程序
當發出這樣的信號時,我正在寫一個日誌文件,回溯和詳細的錯誤信息(我知道我可能有重入問題,但這不是重點)。
通過這種方式,我可以在下次啓動時知道應用程序崩潰了,並且我可以詢問用戶是否要填寫錯誤報告。
當我手動啓動應用程序時,它工作正常。
但是當我從Xcode(使用GDB)運行它時,信號處理程序不會被調用。
我試着用signal
或sigaction
來設置它們,但沒有區別。
我也檢查了info signals
這些信號設置爲pass
,這意味着它們應該被傳遞給應用程序。
這沒有什麼大不了的,因爲我在調試我的應用程序時只遇到了這個問題,但是與GDB一起工作也是非常好的。
有沒有人經歷過並解決過這樣的問題?
您可能想要嘗試將這些信號設置爲在gdb中停止,因此它由您的應用程序管理。 – steve
在提出問題之前,我曾嘗試過,但是我想我犯了一個錯誤,因爲它不起作用。我今天再試一次,它的功能就像一個魅力。你可能想填寫一個答案,所以我可以接受它。謝謝 : ) – Macmade