Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding Qt Sources to QtCreator 2.4.1

I am currently using QtCreator 2.4.1 with Qt 4.7.4 development libraries (in Ubuntu) and am trying to track down a bug which after profiling with valgrind seems to occur internally within QGraphicsView::paintEvent(…) method

To help isolate this problem I would like to step into the Qt sources. Having done some searching through both the Qt forums and stack overflow and have not being able to find a way to integrate the sources with my version of QtCreator.

I have currently tried downloading the sources via the QtSDK manager and adding a “Source Path Mapping” within Tools->Options->Debugger. I am sure that this step is where I am making a mistake as I am unable to even switch to source when viewing internal Qt header files i.e. from QGraphicsView.h

I have so far tried adding the following Source Path Mappings

Source Path=/var/tmp/qt-src TargetPath=/home/paul/QtSDK/QtSources/4.7.4

and

Source Path=/var/tmp/qt-src TargetPath=/home/paul/QtSDK/QtSources/4.7.4/src

Neither works.

I have also tried building Qt directly from source, adding this to my "Qt versions" list within Qt Creator and creating a new project configuration using this version. This also did not work.

Likewise I have tried adding the src folders to my gdbinit file. This also fails to work.

I am completely lost with this.

Paul

like image 989
prichmond Avatar asked May 02 '12 15:05

prichmond


1 Answers

Someone asked a similar question here: Need to step into Qt sources (my IDE is Qt Creator).

Someone else asked about Valgrind errors with Qt here: Suppression files for Qt memory leaks with Valgrind

And here is a little more info about Using Valgrind with Qt Creator along with some explanation about how to read the results. Its a little dated from late 2010.

Related Suggestions

  • I wouldn't debug the QGraphicsView class just because of all the effort to make it work or find the problem might be for nothing... Qt is moving to using the SceneGraph as the backend for QML and the rendering engine for QGraphicsView might become obsolete.

  • Updating to the latest stable build of the Qt libraries may make a big difference for QGraphicsView.

  • If you post the valgrind error you are getting to the Qt Trolls, someone might be able to explain what is going on for you.

  • There are other debugging techniques besides the traditional debugger. I've been programming in Qt in Windows (without valgrind) and with a large multi-threaded application, that loads a bunch of Dll's. I've had to put some faith into the Object Tree Model clean up and work on all the new calls I put in. Most of the time I just use QDebug to find errors. Then I am also using a combination of qInstallMessageHandler() with QDebug to implement decent logging for the hard to track bugs.

See also Qt Debugging Techniques.

like image 89
phyatt Avatar answered Nov 18 '22 00:11

phyatt