如何编写简单的调试器?

时间:2011-04-18 11:16:00

标签: c++ windows linux debugging

我想将编译后的目标代码连接到c ++代码,然后检查是否执行了某行代码。 怎么做那两件事?

如果解释不简单(我打赌不是这样),有人至少可以指向一些网页来解释如何做到这一点吗?

据我所知,不同平台的解决方案有所不同,但我对如何在Windows和Linux(Linux的开始)上做的感兴趣

3 个答案:

答案 0 :(得分:3)

如果你想知道它是如何完成的,

this is a nice article使用ptrace

答案 1 :(得分:2)

我怀疑你并不需要调试器,而是需要一个分析器。我喜欢http://valgrind.org/docs/manual/cl-manual.html的callgrind,它在http://kcachegrind.sourceforge.net/有一个很好的图形环境。

尝试使用

$ valgrind --tool=callgrind ./myapp
$ kcachegrind callgrind.out.xxx

答案 2 :(得分:0)

在你的评论中你说“我只想收集关于如何检查执行期间执行哪些方法/功能的信息,以及多少次”。

如果这是您想要实现的目标,那么请使用gprof。

等分析器

使用-g -pg编译您的程序,当您的程序完成时,它将创建一个文件,可以由gprof处理,以显示您想要的内容。