是否有可能从转储中获取从中抛出异常的行?

Dan*_*inu 2 .net debugging windbg

我有一个转储文件,并用WinDbg加载它.

我使用了!pe(打印异常)来查看异常(空引用异常).但是,它指出了一个包含~100行的方法.

是否有可能找到抛弃异常的行?

    0:000> !pe
   Exception object: 00000000822e7e28
    Exception type:   System.NullReferenceException
    Message:          Object reference not set to an instance of an object.
    InnerException:   <none>
    StackTrace (generated):
SP               IP               Function
00000000001FBDC0 000007FF06468F6B Utils.Page.OnActivate()+0x6db
Run Code Online (Sandbox Code Playgroud)

+ 0x6db是什么意思?

非常感谢,Dan

编辑:

我有源文件,但我不能重现这个问题.这就是我想找出确切线的原因

EDIT2 :(在Brian建议使用!u命令之后)

这是使用!u命令后的快照

    0:000> !u 000007ff03af9a38
   Normal JIT generated code
  Page.OnActivate()
  Begin 000007ff06468890, size 84b
  000007ff`06468890 53              push    rbx
  000007ff`06468891 55              push    rbp
  000007ff`06468892 56              push    rsi
  000007ff`06468893 57              push    rdi
  000007ff`06468894 4883ec78        sub     rsp,78h
  000007ff`06468898 488d6c2430      lea     rbp,[rsp+30h]
  000007ff`0646889d 488bf2          mov     rsi,rdx
Run Code Online (Sandbox Code Playgroud)

等等...

将6db添加到06468890(第一个指针)是否正确?

Bri*_*sen 7

+0x6dbOnActivate抛出异常的方法的偏移量.您没有看到行号的原因是您没有正确的PDB文件.如果您有PDB文件设置包含这些文件的路径.

如果不这样做,你仍然可以很好地指出异常发生的位置.该!u命令将列出一个.NET注释版本的代码,从中您应该能够获得源代码中的位置.有关使用该命令的更多详细信息,请参阅此答案!u.