调试器创建教程

mil*_*ler 3 debugging

在哪里可以找到设计和开发调试器的好教程?我搜索了一下,但我发现只有一些关于这个主题的一般文章.我需要更详细地了解它:它如何附加到应用程序,如何以及在内存中设置断点的位置,它如何读取堆栈跟踪?另外,我对调试器的一般设计感兴趣.

gre*_*olf 5

编写调试器并非易事,它需要您正在使用的底层平台和您正在编写调试器的语言的深入了解.

我过去遇到的一些文章我发现这个主题特别有帮助:

  • Eli Bendersky的" 调试器如何工作 ".由于其彻底性,我发现这非常有用.他涵盖了调试器所做的所有重要部分,它是如何工作的以及它如何在幕后完成.他甚至介绍了使用矮调试格式来帮助注释调试会话,这是一个很难得到的主题,因为它缺乏可访问的文档.尽管他在类似*nix的平台中介绍了这一点,但他描述的许多概念仍然适用于Windows.
  • DebugInfo.com 调试API示例.如果您打算在win32平台上工作,那么您会发现这里的示例非常有用.这个展示了如何使用win32调试api创建一个可以像调试器一样"行动"的进程的实际示例.它包含有关如何启动调试对象或附加到正在运行的进程以及处理从debug api生成的调试事件的示例.
  • MobDebug.这是一个远程lua调试器,在~1.4kloc中以纯lua实现.这个补充是对ruby调试器的deivid的回答.很多时候,即使不是低级语言,查看调试器的实际实现也很有帮助.这可能是一个更容易的地方,可以全面了解调试器必须做什么,而不会陷入"裸机"语言中必须处理的所有较低级别细节.
  • pydbg.使用下面的调试API在python中编写的Windows调试器.
  • jewdbg.另一个用python编写的windows调试器.比pydbg小一点而不是功能四舍五入,但如果您正在寻找一个示例实现来学习,那就太棒了.
  • MSDN调试API.windows提供的基本调试原语和构建块的主要参考和文档.如果为Windows开发自己的调试器,则需要提供此处提供的许多功能.