2011-04-18 66 views
5

我想将我编译的目标代码连接到C++代码,然后检查是否执行了某行代码。 如何做到这两件事?如何编写简单的调试器?

如果解释不是简单的(我敢打赌它不是),至少有人能指出一些网页解释如何做到这一点?

据我所知,该解决方案是针对不同平台的不同,但我感兴趣的是如何在Windows和Linux(Linux的启动)完成

+4

为什么不直接使用现有的调试器? – Erik 2011-04-18 11:19:39

+0

@Erik我知道调试器非常复杂,我不想创建一个。我只想收集有关如何检查在执行过程中执行哪些方法/函数以及执行多少次的信息。 – 2011-04-18 12:05:59

+0

“编译目标代码”是什么?根据你的控制级别,它可能就像在你想知道的代码行之前/之后添加printf()语句一样简单。或者,您可能想要了解如何覆盖您选择的平台上的功能(有时称为混搭)。在很多平台上,你可以用你自己的函数替换链接器表中的函数的条目,做你的printf,然后把它叫做原文。在最坏的情况下,您也可以用跳转指令替换函数的第一条机器指令。 – uliwitness 2015-11-28 13:50:41

回答

0

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

如果这是您想要实现的目标,那么使用诸如gprof的分析器。

用-g -pg编译你的程序,当你的程序结束时它会创建一个可以由gprof处理的文件来显示你想要的内容。

+0

没错,但我想从我的应用程序中完成 - 无需编译库或带有其他选项的程序(-pg为gcc)。 – 2011-04-18 13:09:25

相关问题