2

我正在使用 Intel VTune Amplifier XE 2011 来分析我的程序的性能。我希望能够在分析结果中查看源代码,文档说我需要提供符号信息。不幸的是,它没有说明在编译我的程序时如何生成该符号信息。在 VTune 的 Windows 版本中,我所要做的就是提供 Microsoft Visual Studio 将生成的“.pdb”文件。我可以使用 g++ 创建类似的文件来提供此符号信息吗?

4

3 回答 3

2

您是否尝试过使用 -g 进行编译?通常,这就是为调试器、分析器等生成符号数据所需的全部内容。

顺便说一句,对于 Linux 上的分析,来自 RotateRight.com的 Zoom 比 VTune 更加用户友好。

于 2011-01-14T21:45:25.437 回答
1

gcc -g <your stuff>应该是所有必要的。但是我使用的是旧版本。

新东西的命令行选项在这里

编辑:这个SO 答案可能比这里的任何东西都更有价值。

于 2011-01-14T21:44:00.197 回答
1

使用 GCC 获取可执行文件以包含调试信息的最“经典”方法是指定其他海报提到的“-g”命令行选项。这不会导致任何性能损失,因为调试信息驻留在不属于代码或数据段的 ELF 部分中。也就是说,.debug* 部分在正常程序执行期间不会映射到内存中,它只是调试器将它们放入的调试时间。

对于任何从事生产软件的开发人员来说,另一个有用的考虑是使用单独的调试信息文件。假设如上所述使用“-g”编译程序,然后使用 objcopy 实用程序将包含调试信息的 ELF 部分复制到单独的文件中,并将原始二进制文件的链接添加到单独的调试信息文件中。这对于能够存储您发布给客户的位的调试信息非常有用,以便可以进行事后调试。当然,对于发布位的性能分析也是如此。

于 2012-04-17T20:17:40.837 回答