gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:33:12 27 4
gpt4 key购买 nike

我有一个转储文件并用 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

+0x6db 是什么意思?

非常感谢,丹

编辑:

我有源文件,但我无法重现这个问题。这就是为什么我想找出确切的线路

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

等等……

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

最佳答案

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

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

关于.net - 是否有可能从转储中获取引发异常的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com