Qt Creator を使用してデバッグ モードで Qt プロジェクトをビルドし、Callgrind を実行してプロファイリング データを生成し、それを Cachegrind にロードしてみました。Qt クラスのプロファイリング情報しか表示されないことに気付いたので、重要なフラグをオンにするのを忘れていたに違いないと考えました。
Qt Creator のqmake
コマンドは次のようになります。
qmake /path/to/project/MyProject/MyProject.pro -r -spec linux-g++-64 CONFIG+=debug
1 つのファイルのコンパイル出力の例:
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
ここで何が欠けていますか?