带有 mingw 的 Vtune 分析器
Posted
技术标签:
【中文标题】带有 mingw 的 Vtune 分析器【英文标题】:Vtune analyzer with mingw 【发布时间】:2012-04-11 14:33:18 【问题描述】:我正在使用 64 位平台的 MinGW 来编译一个简单的 c++ 测试应用程序:
g++ -g3 -c test.cpp
g++ test.o -o test
带有 -g3 标志的 test.exe 现在应该包含对其进行分析所需的所有必要符号信息...这是正确的吗?
当我使用 VTune Amplifyer XE 进行热点分析时,它会显示如下调用堆栈:
test.exe![test.exe] - [Unknown]
test.exe![test.exe]+0x15fa - [Unknown]
test.exe![test.exe]+0x13cd - [Unknown]
test.exe![test.exe]+0x14e7 - [Unknown]
kernel32.dll!BaseThreadInitThunk+0x1f33c - [Unknown]
ntdll.dll!RtlUserThreadStart+0x32ca0 - [Unknown]
当单击其中一项时,它会向我显示汇编代码,并且对于最顶部的元素,它会显示:“无法显示源代码和汇编代码”。
这不会改变,如果我在 VTune 项目设置中指定源代码/二进制目录。
我应该如何编译我的程序或设置 VTune 以获得更有意义的结果?
【问题讨论】:
【参考方案1】:VTune 可以从 2013 Update 7 开始分析 mingw 目标 - http://software.intel.com/en-us/articles/whats-new-update-7-intel-vtune-amplifier-xe-2013#Update7Anchor3
【讨论】:
【参考方案2】:原因是目前只有 linux 版本的 VTune 支持标准调试格式,如 f.e.矮人。 windows 版本只能理解 microsoft PDB 文件。 显然支持 dwarf 是 windows 版本的功能请求(参见this 线程)。
【讨论】:
以上是关于带有 mingw 的 Vtune 分析器的主要内容,如果未能解决你的问题,请参考以下文章