Я отлаживаю значительно большое приложение 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()' es сигнализирует, вы должны уловить это в отладчике. – PlasmaHH
@PlasmaHH: кто сказал что-нибудь о 'raise()'? – SamB