3

我想编写一个调试/诊断工具,它可以调用 Windbg 函数来检查转储文件,而不是编写 windbg 扩展。这可能吗?有任何参考吗?

非常感谢。

4

5 回答 5

5

您可以使用在 dbghelp.dll 中实现的调试 API,而不是 WinDbg。它记录在MSDN上。该参考文档相当枯燥,但它应该让您了解 API 的功能。例如,MiniDumpReadDumpStream是检查转储文件的网关。

于 2012-05-14T19:14:23.733 回答
3

除了现有的答案,WinDBG 是 DbgEng API 的 GUI 前端。您可以使用此 API 编写 WinDBG 扩展或其他独立应用程序。WinDBG SDK 附带了两者的示例,可以在 WinDBG 安装的 \sdk\samples\dumpstk 子目录中找到示例独立应用程序。

更多信息,我写了一篇关于 DbgEng 的文章在这里写扩展:

http://www.osronline.com/custom.cfm?name=articlePrint.cfm&id=559

其中大部分内容也适用于您编写独立应用程序的方式,因为它主要关注 DbgEng 接口的编程模式。

于 2012-05-15T13:59:19.563 回答
1

您可以使用 powershell 或命令行版本的 WinDbg(即 cdb)发出命令,然后解析您解释的 cdb 的输出。

这类似于将输出从 cdb 传送到您的应用程序的概念。

有关于以这种方式使用 powershell 的帖子:http ://rkeithhill.wordpress.com/2006/08/14/minidump-crash-analysis-with-powershell/

将命令泵入 cdb 并解释特定命令的输出应该很简单。

于 2012-05-14T19:29:52.707 回答
1

Python 与 dbgeng 集成: pykd.codeplex.com

该项目可用作此类集成的演示

于 2012-05-17T12:35:52.530 回答