使用英特尔Vtune从Qt Creator配置应用程序

时间:2014-04-01 12:53:09

标签: c++ windows qt profiling vtune

我想在Windows 7上使用Vtune从QtCreator分析应用程序。但是Vtune基本上是为Visual Studio应用程序制作的,所以我必须在我的函数名称和发布版本中的指令之间建立链接。 实际上我在Hotspots中只有伪名称func @ address,它不可用。

通过探索英特尔Vtune的“入门”,我发现我必须在我的发布版本中启用调试信息,但如何在QtCreator中执行该操作?

从'使用调试信息'文件:

  

提供准确的性能数据并启用源分析   英特尔®VTune™放大器需要二进制文件的调试信息   它分析的文件。如果它没有找到调试信息   二进制文件,VTune放大器静态识别功能   边界并将热点地址分配给生成的伪名称   这些函数的func @地址。

     

如果缺少调试信息,“调用堆栈”窗格可能无法解除调整   正确调用堆栈以进行用户模式采样和跟踪分析   类型。此外,在某些情况下,可能需要更多时间   最终确定没有调试的模块的结果   信息。

     

在Windows *操作系统上,PDB文件提供调试信息。   确保您的系统和应用程序库/可执行文件都有   PDB文件。使用优化编译目标并开始分析   它的表现。

     

默认情况下,Microsoft Visual Studio * IDE不会生成PDB   发布模式中的信息。为了获得更好的VTune效果   放大器,手动启用符号生成。对于系统库,   使用Microsoft * Symbol Server下载所需的PDB文件   来自Microsoft *网站。请按照以下步骤确保   VTune Amplifier使用系统和您自己的调试信息   库。

我尝试了一些方法,例如:-edit file.pro来更改发布版本

QMAKE_CXXFLAGS_RELEASE += -g
QMAKE_CFLAGS_RELEASE += -g
QMAKE_LFLAGS_RELEASE =
  • 配置Debug构建。

但它没有改变任何东西,我仍然没有打印功能名称

非常感谢任何输入。

2 个答案:

答案 0 :(得分:3)

是的,对于VTune(或其他类似的分析工具),您需要"发布构建" (即,优化开启)调试信息也接通。 QTCreator默认情况下不会创建这种版本+调试配置。

对于Windows MS编译器工具链,它意味着您必须使用附加 / Zi编译和/ DEBUG链接器选项补充发布配置。

为了在QTCreator 中传播这些附加选项,请使用以下步骤(另请参见下面的屏幕截图):

  • 在编辑器中打开qtcreator项目文件(***。pro)
  • 在" TARGET"
  • 之前添加以下行

QMAKE_CXXFLAGS+=-Zi QMAKE_LFLAGS+=/DEBUG

  • 现在,在构建项目时,这些选项将自动应用于Debug和Release配置(Debug已经拥有它,因此它应该不是问题)
  • 现在,您可以使用VTune
  • 分析您的发布版本

少数次要笔记:

  1. 类似的程序(使用QMAKE_CXXFLAGS)也适用于MinGW / GCC或任何其他具有适当选项的工具链(-g,-gdwarf-2等)
  2. 如果您不想影响所有配置,有QT项目编译指示允许在配置之间条件化QMAKE_CXXFLAGS
  3. 如果您想要分析QT标准库内部,那么您还需要通过调整QMAKE_LFLAGS和/ DQT ***等额外选项来链接QT库的调试版本。您可以通过查看QT"编译器输出"来学习这些内容。构建默认调试配置时的窗口。
  4. QT creator Screen-shot

答案 1 :(得分:0)

  1. 确保使用VTun eupdate 7或更高版本
  2. 如果您使用默认的MinGW工具链,请确保通过传递-gdwarf-2(或-g3 -gdwarf-2)来使用DWARF调试格式
  3. 如果您正在使用MSVC工具链/ Zi shuld将传递给编译器和/ DEBUG传递给链接器