2
我正在調試一個相當大的Qt-3應用程序。該應用程序進行大量的預處理,然後接收SIGPIPE信號。我一收到SIGPIPE就立即寫下幾條回溯條目。調試來自第三方庫的SIGPIPE信號
#0 .. __write_nocancel() from libpthread.so
#1 .. _IceTransFreeConnInfo() from libICE.so.6
#2 .. _IceWrite() from libICE.so.6
#3 .. _IceFlush() from libICE.so.6
我們的應用程序有一個信號處理程序。我所做的是忽略SIGPIPE使用signal(SIGPIPE, SIG_IGN)
,認爲我的應用程序將繼續,即使我得到這個信號。但是現在我意識到它不會以這種方式工作,如果我在收到SIGPIPE後繼續存在,它就會存在。
我無能,如何調試這個問題。這個信號不是直接來自我們的應用程序的套接字調用。它來自libICE。我對麼?請提供一些關於如何調試的提示。
在此先感謝。
當應用程序本身'raise()'信號時,你應該能夠在調試器中捕獲該信號。 – PlasmaHH 2012-02-02 11:12:07
@PlasmaHH:誰說'raise()'什麼的? – SamB 2012-02-02 19:46:53