2

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

ここで何が欠けていますか?

4

1 に答える 1

0

やったほうがいい:

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

また、Linux のディストリビューションによっては、リンク先の QT ライブラリにデバッグ情報があることを確認する必要がある場合があります。

于 2012-01-24T17:33:54.123 に答える