我过去用过几次vtune,通常没有太多麻烦。不幸的是,每次使用之间的间隔通常很长,以至于我每次都忘记了如何使用它的某些方面。我知道需要以某种方式存储行号和符号信息。我认为只需要使用“程序数据库”(/Zi)编译您的 exe,但我刚刚做了一个采样,发现 vtune 报告没有可用的符号。
有什么我错过的吗?
我过去用过几次vtune,通常没有太多麻烦。不幸的是,每次使用之间的间隔通常很长,以至于我每次都忘记了如何使用它的某些方面。我知道需要以某种方式存储行号和符号信息。我认为只需要使用“程序数据库”(/Zi)编译您的 exe,但我刚刚做了一个采样,发现 vtune 报告没有可用的符号。
有什么我错过的吗?
有两个调试选项(检查 $> cl /?):
/Zi 启用调试信息
/ZI 启用编辑并继续调试信息
确保您有 .pdb 和清单文件(如果已生成)。它不相关,但也可能关闭优化。
就像 Bua 提到的那样,您肯定需要在启用调试信息的情况下进行编译。如果 pdb 文件与您正在分析的 exe 位于同一目录中,那么它应该能够找到它们。如果没有,您也可以尝试在 config -> options -> 目录中显式添加 pdbs 的路径。 alt text http://software.intel.com/file/21331 在您的符号目录中添加一个项目。您可能还想添加符号服务器和符号缓存,因为这样您将获得 Microsoft 的所有公共二进制文件的符号。上图显示了如何在 c:\websymbols 添加带有符号缓存的符号服务器。通常,“符号服务器”的格式是以下形式的字符串:
一个例子:
SRV*C:\MySymbolCache\*http://msdl.microsoft.com/download/symbol
形式:
SRV * [CACHE] * [SYM SERVER PATH]
希望这可以帮助!
问题已解决:原来是设置工作目录出错;毕竟,“/Zi”似乎就是所有必需的。我不需要关闭优化。