.net 是否可以从转储中获取引发异常的行?

.net 是否可以从转储中获取引发异常的行?,.net,debugging,windbg,.net,Debugging,Windbg,我有一个转储文件,并加载了WinDbg 我用过!pe(打印异常)以查看异常(空引用异常)。然而,它向我指出了一个包含约100行的方法 可以找出抛出异常的行吗 0:000> !pe Exception object: 00000000822e7e28 Exception type: System.NullReferenceException Message: Object reference not set to an instance o

我有一个转储文件,并加载了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
等等


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

+0x6db
是引发异常的方法
的偏移量。看不到行号的原因是您没有正确的PDB文件。如果您有PDB文件,请将路径设置为包含这些文件


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

+0x6db
是偏移量。您需要PDB和创建PDB和程序集的确切源代码。然后你应该可以得到行号。@vcsjones我有来源和PDB。我如何计算行号?布赖恩的回答包括这一点。您需要
.reload
使PDB与程序集位于同一目录中,或者使用
.sympath
告诉WinDbg在哪里查找PDB,然后
.reload
Brian,您可以给我一些有关如何使用PDB的详细信息吗!u司令部?我用过!dumpmt-md和你的另一个答案一样:!dumpmt-md 000007ff03af9c50。然后我用了!u 000007ff03af9a38(000007ff03af9a38是方法说明)并获得了组装代码。开始000007ff06468890,尺寸84b 000007ff`06468890 53推送rbx等。。。我怎样才能找到行号?对不起,让我澄清一下:使用
无法直接找到行号!u
命令。但是,程序集将使用.NET代码详细信息进行注释,因此您应该能够将其与源代码关联起来。此外,异常的位置将在
的输出中突出显示!u
by
>
。如果该方法很大,则必须查看一些汇编代码。找到标记后,请查看注释并将其与源代码关联。@DanDinu我认为您应该将IP(指令指针)传递给!U因此!u 000007FF06468F6B。然后按照Brian所写的查找>>>。如果您有私人符号,请使用!sosex.muf。它将交替使用源代码、IL代码和本机代码。@BrianRasmussen Brian,代码中没有“>>>”指向异常!输出。而且,我似乎不明白你在说什么注释。非常感谢。
    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