如何解释“ln”cmd 输出 (WinDbg)?

How to interpret "ln" cmd output (WinDbg)?

提问人:kirill shvedov 提问时间:5/8/2023 最后编辑:kirill shvedov 更新时间:5/9/2023 访问量:97

问:

我正在尝试使用“ln”cmd 查找应用程序出错的位置,这通常应该对此有所帮助。47a6c6 是日志中报告的故障偏移量。我只是想知道我与代码中有关前/后符号的信息有什么关系。

0:000> lm
...
0000000000400000 0000000000a5c000   llm   ...
...

0:000> ln 00400000+47a6c6

我明白了:

(000000000078b4a0)   llm!videoCodec+0xef226   |  (00000000009430a0)   llm!videoDevice

你能解释一下它到底是什么意思吗?我应该如何使用它?

溶液:

看起来 47a6c6 已经是最终出现故障的地址:

(04-01-23 15:39:27.638) 在 47a6c6 处的 Ctrl(0) 中出现异常 c0000005

开始+出错偏移量=47a6c6 所以,我找到了应用程序失败的功能:

0:000>ln 47a6c6

c:*****\llmgroup\llm\digimot.cpp(5705)+0x3 (0000000000478ed0) llm!Ctrl线程+0x17f6 |(0000000000480450) llm!CDigiMotion::MemberThreadOpen

0:000>ln llm!CtrlThread+0x17f

c:*****\llmgroup\llm\digimot.cpp(5382)+0x12 (00000000'00478ed0) LLM!Ctrl线程+0x17f |(0000000000480450) llm!CDigiMotion::MemberThreadOpen

C++ 调试 windbg 内存地址

评论


答:

1赞 273K 5/8/2023 #1

手册:ln.

  1. 地址之前最接近的符号(函数)在模块中(可能是 llm.dll)。符号地址为 ,请求的地址是符号后的偏移量。00400000+47a6c6videoCodecllm0078b4a00xef226videoCodec
  2. 地址后最接近的符号(函数)在模块中。符号地址为 。00400000+47a6c6videoDevicellm009430a0
  3. 该模块加载到的地址为 。llm0040000000a5c000

评论

0赞 kirill shvedov 5/8/2023
谢谢你的解释。但我想知道如何在代码中使用这些信息。我的意思是我尝试加载源文件路径以尝试确定确切的位置(源文件中的行)。但它在给定地址之前和之后一直显示最近的符号。不确定如何应用此信息。
0赞 Thomas Weller 5/9/2023
@kirillshvedov:你的问题中的信息太少了。我们甚至不知道你想达到什么目的。因此,也很难解释您如何从中受益。也许你这样做,也许你不这样做,也许完全是错误的命令。通常,您可以使用它来获取应用出错的确切位置。我不知道你为什么首先尝试使用。从缩写的输出中,我不知道你为什么选择. 就像一个神奇的数字,没有任何解释。lnlnklnln 00400000+47a6c6ln 400000+a5c00047a6c6
0赞 kirill shvedov 5/9/2023
@ThomasWeller,我试图使用“ln”cmd 找到应用程序明显出错的地方(如案例描述中所述),这通常应该会有所帮助。我不明白你说的“ln 400000+a5c000”是什么意思。你不明白这句话是什么意思:“0000000000400000 0000000000a5c000 llm ...”?47a6c6 不是幻数,而是日志中报告的故障偏移量。我只是想知道我与代码中有关前/后符号的信息有什么关系。我认为这个问题很清楚。
0赞 kirill shvedov 5/9/2023
看起来 47a6c6 已经是最终出现故障的地址。(04-01-23 15:39:27.638) 在 47a6c6 处的 Ctrl(0) 中出现异常 c0000005。开始 + 出错偏移量 = 47a6c6。所以,我找到了应用程序失败的功能。c:*****\llmgroup\llm\digimot.cpp(5705)+0x3 (0000000000478ed0) llm!CtrlThread+0x17f6 |(0000000000480450) llm!CDigiMotion::MemberThreadOpen 感谢@273K
0赞 Thomas Weller 5/9/2023
@kirillshvedov:您现在在评论中提供的所有信息都应该是问题的一部分。有人(比如@273K或我)可能会告诉你,如果异常信息是原始帖子的一部分,你不需要这样做。400000+47a6c6