Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Debugging asserts in Qt Creator

Tags:

When I hit a normal assert statement while debugging with Visual Studio I get the option to break into the debugger so I can see the entire stack trace and the local variables, not just the assert message.

Is it possible to do this with Qt Creator+mingw32 and Q_ASSERT/Q_ASSERT_X?

like image 635
Dan Berindei Avatar asked Jan 21 '10 09:01

Dan Berindei


2 Answers

It's possible. Somehow the feature stopped working for me, but basically what you want is to stop on qFatal(). To ensure this happens, in qt Creator go to Tools -> Options -> Debugger -> GDB and select "Stop when a qFatal is issued"

like image 195
Gustavo Litovsky Avatar answered Oct 17 '22 08:10

Gustavo Litovsky


You can install a handler for the messages/warnings that Qt emits, and do your own processing of them. See the documentation for qInstallMsgHandler and the example they give there. It should be easy to insert a break in a custom message handler (or indeed, just assert on your own at that point). The one small drawback is that you'll be a bit further on down the stack than where the error actually occurred, but it is a simple matter to just step up the stack until you are at the proper frame.

like image 42
Caleb Huitt - cjhuitt Avatar answered Oct 17 '22 09:10

Caleb Huitt - cjhuitt