如何在不使用操作系统功能的情况下创建调试器

时间:2012-05-05 10:00:04

标签: debugging

最近我从一家公司接到测试任务。还有一个问题是:

  

假设您有一个编写简单调试器的任务(对于   专有操作系统),能够设置断点   在应用程序中运行它。什么是关键的设计决策   你做了这样的任务?

我想我不知道什么,但我完全不知道答案。我理解调试器是如何工作的(INT 3 - 应该可以访问debuggie的虚拟空间)但我想是关于“专有操作系统”的答案。

1 个答案:

答案 0 :(得分:1)

这个问题,就像通常在面试时一样会让你问更多关于系统和要求的问题

操作系统是否已经提供了一些可以使用的原始跟踪工具? 用于编写测试应用程序的语言是什么语言?

一些检查工具,例如valgrind, run inspected programs in their own environment ,这似乎是您的理想选择。另一种方法是使用跟踪指令检测二进制文件,与调试器进行通信 - 当您的应用程序在VM下运行时,这可能更合适也更容易。