PDA

View Full Version : Exception not controlled



^NyAw^
5th October 2009, 12:13
Hi,

I'm having an application crash with a message "uncontrolled exception 0x00dcdeac". The lib that is causing the exception is a 3rd party lib that I don't have the source.
The application always stop with this exception and the debugger shows me that the last instruction is in "qatomic.h" in line 73(I'm using Visual Studio 2003 with Qt 4.3.0 and it marks this line with a green arrow).
The call stack shows "xxxxxxx.lib!00dcdeac()".
I don't really know how can I know where is the problem. Any suggestion and help will be helpfull.

Thanks,

caduel
5th October 2009, 12:33
i) presumably VS has an option to break (in the debugger) when an exception is thrown.
ii) the stacktrace will show you where the exception is thrown
iii) you have to wrap the call with a try-catch block and handle the exception appropriately

spirit
5th October 2009, 12:38
try to "reimplement QApplication::notify() and catch all exceptions there.".

^NyAw^
5th October 2009, 15:12
Hi,

Thanks for replies.


i) presumably VS has an option to break (in the debugger) when an exception is thrown.
I didn't find it.


ii) the stacktrace will show you where the exception is thrown
I looked it but all the calls before the crash are from "ntdll.dll" "my3rdLib.dll", "kernel32.dll", "gdi32.dll" and "user32.dll".
I think that the problem can be on the "display" process because disabling it the application don't crash(it is a multithreaded application that the main thread recieves what to display and display them).


try to "reimplement QApplication::notify() and catch all exceptions there.".
I have tried but it is not called anytime.

Thanks,

^NyAw^
5th October 2009, 16:43
Hi,

Two questions:

1) I think that the display operation is performed by GDI(I'm using Windows). So, maybe displaying too many fast can crash the application?

2) Can a QQueue be accessed by two threads, the first one "enqueuing" and the second one "dequeuing"? As I readed in the doc the queue can be accessed at a time by two or more threads because it is thread-safe.

Thanks,