2011-06-09 67 views
2

我使用Qt Creator在調試模式下構建了一個Qt項目,運行Callgrind生成分析數據並嘗試將其加載到Cachegrind中。我注意到,我只能看到Qt類的分析信息,所以我想我一定忘了打開一個關鍵的標誌。如何讓Callgrind訪問我的Qt項目的源代碼?

Qt Creator中的qmake命令如下:

qmake /path/to/project/MyProject/MyProject.pro -r -spec linux-g++-64 CONFIG+=debug 

樣品編譯輸出一個文件:

g++ -c -m64 -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I../Flowchart -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -I. -I../Flowchart -I. -o main.o ../Flowchart/main.cpp 

-g標誌是存在的,所以調試信息應該可用。我通過在可執行文件上運行gdb來驗證這一點,並嘗試使用l來查看一些隨機源代碼。

我使用的Callgrind命令是:

valgrind --tool=callgrind ./MyProject 

缺少什麼我在這裏?

回答

0

你應該這樣做:

valgrind --tool=callgrind --trace-children=yes --demangle=yes ./MyProject 

這也取決於您可能要確保你有你鏈接Qt庫的調試信息的Linux發行。