[Qt-interest] sigsegv with exceptions

Lars Amsel lars.amsel at signalion.com
Fri Aug 28 15:00:37 CEST 2009


Hi,

I have a precompiled qt mingw 4.5.2 running on win xp. The MinGW is the 
distribution that is shipped with precompiled qt-mingw.

In my program I have thread that receives udp packages. The package is 
unpacked an the resulting Object is checked against several conditions. On 
failure an exception is thrown. These exceptions kill my program with a 
sigsegv. To track things down I inserted the following code instead of the check

try {
   throw MyException("test);
} catch (MyException& ex) {
   qDebug() << "catched"
}

This leads to the following stack trace

Thread [13] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation 
fault.)	
	8 <symbol is not available> 0x0022b67c	
	7 _Unwind_SjLj_RaiseException() c:\mingw\include\c++\3.4.2\iostream:77 
0x04e09bcc	
	6 __cxa_throw() c:\mingw\include\c++\3.4.2\iostream:77 0x04e00365	
	5 Channel::run() D:\Dokumente und Einstellungen\amsel\Eigene 
Dateien\workspace\MyApp\Channel.cpp:67 0x04dd375f	
	4 QThreadPrivate::start() 
C:\Programme\Qt-MinGW\4.5.2\src\corelib\thread\qthread_win.cpp:307 0x6a114ed5	
	3 msvcrt!_endthreadex()  0x77c0a3b0	
	2 KERNEL32!GetModuleFileNameA()  0x7c80b713	
	1 <symbol is not available> 0x00000000	


The code runs inside a dll, that is build with -fexceptions and -mthreads. Any 
tip that points a search direction is very welcome.

regards

Lars



More information about the Qt-interest-old mailing list