2014-04-01 98 views
0

我想在Windows 7上使用Vtune從QtCreator剖析應用程序。但Vtune基本上是用於Visual Studio應用程序的,所以我必須在我的函數的名稱和發佈版本中的指令之間建立鏈接。 其實我在熱點只有僞名稱func @ address,它不可用。使用Intel Vtune來從Qt Creator中剖析應用程序

通過探索英特爾Vtune的「入門」,我發現我必須在我的發行版本中啓用調試信息,但是如何在QtCreator中執行此操作?

從「使用調試信息」文件:

爲了提供準確的性能數據,並啓用源分析, 英特爾®VTune™放大器需要二進制文件 它分析調試信息。如果它在 二進制文件中找不到調試信息,則VTune放大器會靜態標識功能 邊界,並將熱點地址分配給生成的僞名稱 func @ address用於此類功能。

如果調試信息不​​存在,則對於用戶模式採樣和跟蹤分析 類型,「調用堆棧」窗格可能無法正確地展開 調用堆棧。另外在某些情況下,可能需要更多的時間來完成沒有調試 信息的模塊的結果 。

在Windows *操作系統上,PDB文件提供調試信息。 確保您的系統和應用程序庫/可執行文件都有 PDB文件。通過優化編譯您的目標,並開始分析其性能 。

默認情況下,Microsoft Visual Studio * IDE在發行模式下不會生成PDB 信息。爲了使用VTune 放大器獲得更好的結果,請手動啓用符號生成。對於系統庫, 使用Microsoft * Symbol Server從Microsoft *網站下載所需的PDB文件 。請按照以下步驟操作,以確保VTune Amplifier對系統和您自己的 庫使用調試信息。

我喜歡嘗試一些方法:-edit的file.pro改變發佈版本

QMAKE_CXXFLAGS_RELEASE += -g 
QMAKE_CFLAGS_RELEASE += -g 
QMAKE_LFLAGS_RELEASE = 
  • 配置文件中的調試版本。

,但它不會改變任何東西,我還沒有印刷

功能名稱的任何輸入是非常讚賞。

回答

2

是的,對於VTune(或其他類似的剖析工具),您需要「發佈版本」(即優化開啓)調試信息也打開。 QTCreator默認不會創建這種release + debug配置。

對於Windows MS編譯器工具鏈情況下,它意味着你必須補充發佈配置與額外 /紫編譯和/ DEBUG鏈接器選項。

爲了傳播在QTCreator 使用以下步驟其他選項(另見下文屏幕截圖):

  • 打開qtcreator項目文件編輯器(*** PRO)
  • 添加「TARGET」

QMAKE_CXXFLAGS+=-Zi QMAKE_LFLAGS+=/DEBUG

之前以下行
  • 現在,建設項目時,這些選項將自動適用於Debug和Release配置(調試已經擁有它,所以它不應該是一個問題)
  • 現在你可以使用VTune™可視化
  • 配置您的發佈版本

很少更次要筆記:

  1. 類似的方法(使用QMAKE_CXXFLAGS)也適用於MinGW的/ GCC或任何其他工具鏈與相應的選項(-g,-gdwarf-2等)
  2. 如果你不想影響所有配置外,還有QT項目編譯指示允許配置之間的條件化QMAKE_CXXFLAGS
  3. 如果要分析QT標準庫內部,那麼你將額外有QT的調試版本鏈接通過調整帶有/ DQT ***等額外選項的QMAKE_LFLAGS;你可以從構建默認的調試配置時,看着QT「編譯器輸出」窗口學會這些。

QT creator Screen-shot

+0

謝謝你,我已經找到一個僞解決方案,你的回答幫我完成它。現在我可以將QT標準庫內部化爲好了! – user3484342

0
  1. 請確保您使用VTUN eupdate 7或更高版本
  2. 如果使用默認MinGW的工具鏈,請確保通過合格-gdwarf-2(或-g3 -gdwarf-2)
  3. 使用DWARF調試格式如果您正在使用MSVC工具鏈/ Zi shuld傳遞給編譯器和/ DEBUG鏈接器