使用c#从蓝屏转储文件中检索堆栈
本文关键字:文件 检索 堆栈 转储 使用 | 更新日期: 2023-09-27 18:15:29
我想知道是否有一种方法可以使用c#打开蓝屏崩溃转储+加载符号,以便检索内存堆栈。
我知道如何手动使用windbg程序,所以如果有一种方法可以使用c#连接到windbg,可能也会解决这个问题。
有人知道如何使用c#提取内存堆栈,或使用c#连接到Windbg吗?
谢谢!
我不知道任何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命令将结果写入文件。
因此,通过读取文件,我可以解析结果并提取我想要的东西。
谢谢你的帮助!