【问题标题】:Visual Studio Profiler showing "[broken]" as function namesVisual Studio Profiler 将“[broken]”显示为函数名称
【发布时间】:2019-05-27 15:44:23
【问题描述】:

我正在尝试分析我的 c++ dll,但分析器无法与我一起使用。我想查看调用树等等,但只有 stl 函数显示,而且并非全部不相交 - 当我点击任何函数时,它们的调用者是“[broken]”。

我不知道我的 google 技能是否不够,但我找不到任何关于 [broken] 意味着什么以及如何修复它的信息。

这是一个调试版本。我不能保证这不是由于某些编译器设置造成的,但我觉得我什么都试过了。

需要注意的是,中断代码和添加断点工作正常,所以分析器只是不访问这些信息

如果它添加任何信息,分析指定的特定 DLL here 会给出异常“文件不包含数据缓冲区”。

【问题讨论】:

  • 对于未来的读者:我从来没有设法让它工作。我买了一台新电脑,重新安装了所有东西,现在它可以正常工作了。很抱歉没有提供更多帮助
  • 也许,探查器等待的时间太长,例如符号服务器,因此它被认为是“损坏的”。在同一个程序中,有时(30%)我“坏了”,而其他情况还可以。可能是我的alt+tab 到 Internet 浏览器窗口导致分析器出现问题。
  • 好吧,代码在我的电脑本地,所以我不明白这是怎么回事。不会花费不合理的时间,并且没有超时警告
  • 我刚刚发现一个相关的帖子部分解释了它。 stackoverflow.com/questions/53227928/…

标签: visual-studio visual-c++ visual-studio-2017 profiling


【解决方案1】:

我的猜测是您的输出的 PDB 有问题(例如,您可能在链接器的设置中设置了 /DEBUG:FASTLINK,这会产生仅供参考的 PDB)。

如果不是这样,您可以尝试my profiler - 它可以作为 VisualStudio 的扩展,用于检测(意味着它的功能准确)并实时显示统计信息。

【讨论】:

  • 因为我可以看到这个问题确实仍在被其他用户查看:不知何故,您的分析器能够做 Visual Studio 不能做的事情。如果问题本身无法解决,此分析器绝对是一个不错的选择。谢谢!
  • 是什么让您想到仅引用 PDB 与 [Broken] 相关的想法?我正在考虑从我的所有项目中删除此类设置
  • @javaLover 我 假定 MSVS 的分析器使用的是 dbghelp.dll,而不是 MSVC 调试器使用的 DIA。并且该功能(我需要检查,如果它仍然是)不受支持,因为默认的 dbghelp.dll 在该功能首次进入 MSVC 2015 (14.0) 之前随 Windows 一起提供。我非常有信心,因为我有问题报告说我的分析器也因为同样的原因没有显示符号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 2019-09-28
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多