10

我对编写 Windows 调试器的信息太少感到非常不满。

我的大部分代码都是经过长时间的反复试验而编写的,文档显然“认为”大多数主题都过于琐碎,同时详细解释了明显和无用的东西。

我找到了 2 篇左右的文章,但没有多少我不知道的东西来自它。

是否有任何文档,我的意思是完整的文档,或者一些关于调试器的好文章(不是如何在 vb.NET 中将字节更改为 0xCC,而是现实世界的东西)?带有内存断点的高级调试器。

目前我还没有找到一种方法,例如如何找出在 GUARD_PAGE_VIOLATION 中写入了多少字节。我只是在代码执行和比较之前和之后制作一个缓冲区。

还有在哪里可以找到信息是什么debug_event.u.Exception.ExceptionRecord.ExceptionInformation?(以及 debug_event 中的其他内容)

我真的必须自己扭转倒车环境吗?

4

2 回答 2

9

这确实是一些可用的信息。

DEBUG_EVENT(和调试 API 的其余部分)在 MSDN 中正式描述:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms679308 (v=vs.85).aspx

有一篇很好的 CodeProject 文章:编写一个基本的 Windows 调试器及其续集:编写 Windows 调试器 - 第 2 部分

最后,来自 Devon Strawn 的完整参考资料列表:如何编写 (Windows) 调试器 - 参考资料

于 2013-01-29T14:22:22.113 回答
2

您可以在 Windows SDK 中找到“旧”但很好的示例:查看:.\Program Files\Microsoft SDKs\Windows\v7.1\Samples\winbase\debug\

debbughandler 展示了如何处理异常。

于 2012-12-15T19:28:13.197 回答