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



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

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

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

这个问题

,像往常一样在面试中应该会让你问更多关于系统和要求的问题

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

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

相关内容

最新更新