3

最近接到一家公司的测试任务。一个问题是:

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

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

4

1 回答 1

1

这个问题,像往常一样在面试中应该会让你对系统和要求提出更多的问题

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

一些检查工具,例如 valgrind,在他们自己的环境中运行被检查的程序,这在你的情况下似乎是一个好方法。另一种方法是使用跟踪指令检测二进制文件,与您的调试器通信 - 当您的应用程序在 VM 下运行时,这可能更合适且更容易执行。

于 2012-05-05T10:12:13.087 回答