我想知道是否有办法使用 C# 打开蓝屏故障转储 + 加载符号,以检索内存堆栈。
我知道如何使用程序 windbg 手动执行此操作,因此,如果有一种方法可以使用 C# 连接到 Windbg,也可以解决问题。
有谁知道如何使用 C# 提取内存堆栈,或使用 C# 连接到 Windbg?
谢谢!
我想知道是否有办法使用 C# 打开蓝屏故障转储 + 加载符号,以检索内存堆栈。
我知道如何使用程序 windbg 手动执行此操作,因此,如果有一种方法可以使用 C# 连接到 Windbg,也可以解决问题。
有谁知道如何使用 C# 提取内存堆栈,或使用 C# 连接到 Windbg?
谢谢!
我不知道任何 C# 解决方案,但PyKd (Python) 可以做你想做的事。虽然我主要使用 PyKd 作为 WinDbg 的插件,
它是一个 Python 模块,可以在任何 Python 脚本中使用
所以不需要WinDbg。
但是,某些命令可能与在 WinDbg 中的工作方式不同,例如,dbgCommand()
将尝试运行调试器的命令,如果您在没有 WinDbg 的情况下工作,这可能是不可能的。
根据您的描述,您将需要loadDump()
、closeDump()
和。有进程和线程的类,(堆栈指针)属性可能会有所帮助。setSymbolPath()
setCurrentProcess()
sp
如果您想从头开始并在 c# 中使用 dbgeng inerfaces,您可以尝试将我放在一起的这段代码
感谢您的帮助,但我找到了一种更简单的使用方法……由于可以使用 cmd 操作 Windbg,因此很难找到和理解命令,但我设法使用 cmd 操作它。
之后可以从 C# 发送 cmd 命令,所以我只是使用 C# 发送命令,并使用 Windbg 的 -logo 命令将结果写入文件。
所以通过阅读文件,我可以解析结果并提取我想要的东西。
感谢所有的帮助!