【问题标题】:How to view source code using Vtune with MinGW如何使用 Vtune 和 MinGW 查看源代码
【发布时间】:2021-01-17 16:50:53
【问题描述】:

我正在用 MinGW 的 g++ 编译 C++ 源代码。在 Vtune 上分析它的性能时,“自下而上”选项卡会让我看到程序集,但看不到源代码。这是 Vtune 在运行程序后给出的警告列表:

我认为这是因为缺少符号文件,但我尝试过编译

-g
-g3
-gstabs
-gdwarf-2
-gdwarf-3

但这些都不起作用,它仍然无法找到调试信息。

【问题讨论】:

  • 您的屏幕截图只显示它找不到任何 windows dll 的调试信息,但您的可执行文件未列出。

标签: c++ g++ mingw intel-vtune


【解决方案1】:

考虑在“分析配置”中明确指定“搜索目录”,以提供源路径和(如果可能)调试符号(pdb 文件)。

对于 vtune 2020/2021 版本,它们可以在分析配置的右下方添加/调整(另请注意,对于 Intel Inspector 和 Intel Advisor,这些配置仍位于更传统的“项目属性”(CTRL+P)对话框中) :

通常,源文件会自动集成,但在某些情况下(因为 MinGW 或因为您在分析后移动了二进制文件/源或项目) - 您可能需要明确指定这些文件,如上所示

【讨论】:

  • 我怎样才能知道 MinGW 在哪里保存这些调试符号?我没有移动它们,因为我找不到文件路径。 (还有源路径是指正在编译的 .cpp 文件的位置吗?)
  • 是的,对于“来源”,我的意思是 .cpp 文件的位置。在某些情况下,这可能就足够了(无需指定 PDB 的路径)。
  • 请注意,我不是指 PDB / kernel32、msvcrt 等的符号(来自您问题中的警告;我暂时忽略此警告);我的意思是 Your_Application 的 pdb 的路径。
  • 恐怕我也不知道如何找到它的路径。 MinGW 也不使用 .dwarf 文件,而不是 pdb?
  • 是的,正确的,它应该是侏儒。如果是 dwarf,它通常会嵌入到您的主要可执行文件中(Windows 的 exe 或 linux 上的任何格式 .out / .so)。所以你需要提供你的 exe 的路径(有点)。您的应用程序和可执行文件的路径是您在第一次为应用程序分析配置 vtune 时在启动应用程序部分指定的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
  • 2018-10-02
相关资源
最近更新 更多