2014-04-01 57 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链接器