【问题标题】:Writing debuggers编写调试器
【发布时间】:2012-11-06 15:27:50
【问题描述】:

我对编写 Windows 调试器的可用信息如此之少感到非常不满。

我的大部分代码都是经过漫长的试错过程制作的,文档显然“认为”大多数主题过于琐碎,同时详细解释了明显和无用的东西。

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

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

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

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

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

【问题讨论】:

标签: c++ windows debugging


【解决方案1】:

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

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

有一篇不错的 CodeProject 文章:Writing a basic Windows debugger 及其续篇:Writing Windows Debugger - Part 2

最后,来自 Devon Strawn 的完整参考资料列表:How to write a (Windows) debugger - References

【讨论】:

    【解决方案2】:

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

    debbughandler 展示了如何处理异常。

    【讨论】:

    • 由于您无法添加评论,请尝试包含一些来源和/或其他示例。
    猜你喜欢
    • 2016-03-16
    • 2011-01-30
    • 1970-01-01
    • 2021-01-08
    • 2012-06-25
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多