WinDbg,显示已加载模块的符号服务器路径(即使符号未加载)?
WinDbg 有没有办法在不使用 DbgEng API 的情况下显示符号服务器路径(即 PdbSig70 和 PdbAge) 对于所有加载的模块?
我知道
lml
这适用于已加载符号的模块。我想知道未加载符号的这些路径,以便诊断问题。有人知道这是否可以在不使用 DbgEng API 的情况下实现吗?
编辑:
我还意识到您可以用来
!sym noisy
获取有关符号加载的错误消息。虽然这确实有有用的输出,但它与我想要的其他输出交织在一起,并且不像“lml”那样简单明了
Is there a way from WinDbg, without using the DbgEng API, to display the symbol server paths (i.e. PdbSig70 and PdbAge) for all loaded modules?
I know that
lml
does this for the modules whose symbols have loaded. I would like to know these paths for the symbols that did not load so as to diagnose the problem. Anyone know if this is possible without having to utilize the DbgEng API?
edited:
I also realize that you can use
!sym noisy
to get error messages about symbols loading. While this does have helpful output it is interleaved with other output that I want and is not simple and clear like 'lml'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
!sym嘈杂和!sym安静可以打开符号加载的附加输出,即:
当调试器尝试加载PDB时,您将看到它尝试加载的每个路径以及PDB是否未找到或被拒绝。
!sym noisy and !sym quiet can turn on additional output for symbol loading, i.e.:
When the debugger attempts to load the PDB you will see every path that it tries to load and if PDB's weren't found or were rejected.
据我所知,windbg 中没有现成的解决方案。
您的选择是编写一个漂亮的脚本或一个扩展,具体取决于您最适合的位置。
它作为脚本在 Windbg 中非常可行。您需要的信息在 PE 调试目录中描述。
这是 C++ 示例代码的链接,详细介绍了如何提取有用信息(就像您案例中符号文件的名称)。使其适应 Windbg 脚本应该不费吹灰之力。
这是另一个有用的 指针 包含大量有关自动化 Windbg 的信息。特别是,它讨论了将参数传递给 Windbg 脚本的方法(这在您的情况下也很有用,拥有一个可以从加载的模块迭代循环中调用的通用调试信息提取代码)。
To my knowledge there's no ready solution in windbg.
Your options would be to either write a nifty script or an extension dependent on where you're the fittest.
It is pretty doable within windbg as a script. The information you're after is described in the PE debug directory.
Here's a link to the c++ sample code that goes into detail on extracting useful information (like the name of the symbol file in your case). Adapting it to windbg script should be no sweat.
Here's another useful pointer with tons of information on automating windbg. In particular, it talks about ways of passing arguments to windbg scripts (which is useful in your case as well, to have a common debug info extraction code which you can invoke from within the loaded modules iteration loop).
您可以使用该命令
显示未加载任何符号的模块。
You can use the command
to show the modules that did not have any symbols loaded.