简单的C ++源代码检测?

时间:2013-07-11 17:07:27

标签: c++ instrumentation

我想在大型C ++代码库上使用Shiny,但我不想将所需的PROFILE_FUNC()调用添加到我的源代码中。我认为编写一个脚本可以很容易地为每个源文件,正则表达式搜索函数定义,在开始括号之后添加一个宏调用并将结果传递给g ++;但这似乎是一个非常明显的源代码检测案例,所以我发现很难相信没有人已经提出了更好的解决方案。

不幸的是,在我周围搜索我只能找到LLVM / clang仪器和奇怪的研究工具的参考资料,这对我相对简单的问题看起来过于复杂。实际上,在编译之前,似乎没有简单的方法可以对C / C ++代码执行简单的自动代码编辑。

是吗?是这样吗?或者我错过了什么?

更新:我忘了提到这个“C ++代码库”是我移植到Android的本机应用程序。所以我既不能使用gprof(在Android上不可用),也不能使用Valgrind(它需要NDK的旧版本而不是我正在使用的版本),也不能使用android-ndk-profiler(用于Android活动加载的动态库) ,Java或本机,而不是普通的可执行文件)。因此,我调查了Shiny。

更新2:尽管之前的声明我确实设法build Valgrind on Android NDK r8e,所以我决定使用它而不是Shiny。但是我仍然认为最初的问题是有效的:是不是有任何直接的工具可以对C / C ++源文件进行简单的编译时编辑 - 类固醇上的某种宏预处理器?

2 个答案:

答案 0 :(得分:0)

您可以考虑gprofvalgrind。如果内存服务,gprof使用instrumentation,valgrind是基于采样的分析器。它们都不需要您注释源代码。

答案 1 :(得分:0)

您可以使用android ndk profiler来分析C / C ++代码 更多信息在这里

http://code.google.com/p/android-ndk-profiler/

您使用gprof分析结果