使用c#从蓝屏转储文件中检索堆栈

本文关键字:文件 检索 堆栈 转储 使用 | 更新日期: 2023-09-27 18:15:29

我想知道是否有一种方法可以使用c#打开蓝屏崩溃转储+加载符号,以便检索内存堆栈。

我知道如何手动使用windbg程序,所以如果有一种方法可以使用c#连接到windbg,可能也会解决这个问题。

有人知道如何使用c#提取内存堆栈,或使用c#连接到Windbg吗?

谢谢!

使用c#从蓝屏转储文件中检索堆栈

我不知道任何c#解决方案,但PyKd (Python)可以做你想做的。虽然我主要使用PyKd作为WinDbg的插件,

这是一个Python模块,可以在任何Python脚本中使用

所以不需要WinDbg。

然而,有些命令可能与WinDbg中的工作方式不同,例如dbgCommand()将尝试运行调试器的命令,如果没有WinDbg,这可能是不可能的。

从你的描述,你需要loadDump(), closeDump(), setSymbolPath()setCurrentProcess()。有进程和线程的类,sp(堆栈指针)属性可能会有帮助。

如果您想从头开始使用c#中的dbg接口,您可以尝试扩展我放在一起的这段代码

https://github.com/blabberer/chashdbg

谢谢你的帮助,但是我发现了一个更简单的方法来使用它…由于Windbg可以使用cmd来操作,所以很难找到和理解这些命令,但我设法使用cmd来操作它。

之后可以从c#发送cmd命令,所以我简单地使用c#发送命令,并使用Windbg的-logo命令将结果写入文件。

因此,通过读取文件,我可以解析结果并提取我想要的东西。

谢谢你的帮助!