SOS / SOSEX缺少源代码信息

时间:2018-12-20 20:03:05

标签: windbg sos sosex

我正在使用带有sosex扩展名的cdb。一切似乎都工作正常,除了我无法解析任何!mbp断点并且!mu /!muf不显示源信息。

使用以下命令:

.lines
sxe ld:clrjit
g
.loadby sos clr
.cordll -ve -u -l
.load c:\blah\sosex.dll
sxe ld:myassembly.dll
ld myassembly
!mbm myassembly!myfunction
g

然后它击中我感兴趣的功能并中断。但是!mu不显示任何源信息,仅显示IL和本机。

我通过以下操作验证了包括源代码行信息在内的符号是否已加载:

? `myassembly!c:\blah\whatevs.cs:20`

打印出正确的偏移量。

SOSEX版本是stevestechspot的最新版本。针对.NET Framework 4.7.3运行。 cdb和sosex均为x64。

计算机上的源文件位置与PDB文件中的源文件位置匹配。

更新

SOS也有同样的问题。 IP2MD没有显示源代码行。

1 个答案:

答案 0 :(得分:0)

我通过sos.dll进行了调试,它正确地将本机地址转换为IL地址,并将生成的IL地址传递给dbgeng中的函数DebugClient :: GetLineByOffset()。但是,此操作返回了E_FAIL,它在反汇编中似乎已硬编码完成。

因此,看起来SOS依赖于调试器引擎中不再实现的功能来从IL偏移量获取源代码行。

已报告:https://developercommunity.visualstudio.com/content/problem/414350/sos-debugger-extension-for-windbg-cant-find-source.html

被告知要报告为WDK问题-在此处提出: https://social.msdn.microsoft.com/Forums/en-US/2f9d4bbe-8322-4e8d-883a-e40d19f21209/sos-debugger-extension-for-windbg-cant-find-source-lines?forum=wdk