我使用ncurses的,每當我得到一個segfault,ncurses的不正確釋放終端的控制(因爲endwin()從未被調用)。我設置了一個信號處理程序:最後塊分割故障(C++)
void handler(int signum) {
endwin();
exit(EXIT_FAILURE);
}
但這個問題是內存設計缺陷被忽略,因爲endwin後反對推遲到()。我對C++相當陌生; segfaults可以被捕獲爲異常,這樣我可以有一個finally塊?還是有一些重新從處理程序內部重新發布segfault?
可能的重複[如何在Linux中捕獲段錯誤?](http://stackoverflow.com/questions/2350489/how-to-catch-segmentation-fault-in-linux) – casablanca 2010-11-13 01:02:00
只是出於興趣,什麼如果在信號處理程序中放置斷點,會發生什麼? gdb可以回到原始段落的上下文嗎? – 2010-11-13 01:30:20
C++沒有finally塊。使用一個哨兵類,它的析構函數調用endwin(); – 2010-11-13 05:57:25