为C / C ++程序编写一个检测工具

时间:2012-04-29 21:48:20

标签: c++ c instrumentation

我想编写一个程序来自动检测输入C / C ++代码 基于一些输入属性。我正在寻找一个好的地方开始学习如何这样做(主要涉及如何做仪器,在哪里这样做,等等)。我一直在网上搜索一段时间没有任何好运。因此,如果有人能指导我到一个好的起点,我会感激不尽。

谢谢

2 个答案:

答案 0 :(得分:2)

如果您还没有找到它,这里有一个非常相似的问题,可以使用自定义LLVM PassGCC MELTInstrumenting C/C++ code using LLVM

如果您正在寻找更简单的方法,请查看Basic Instrumentation and Profiling Framework for C++

的基于预处理器的解决方案

答案 1 :(得分:1)

如果您使用的是Linux,并且只需要系统API调用,请查看strace或阅读this question

如果您想要自己编写代码,事情会变得棘手。 Profilers始终执行此操作,但它们与编译器一起使用以添加检测。似乎gcc支持用户定义的检测的某种形式。请参阅this question

我发现很少需要整个程序检测 - 通常只需要几个关键区域。在这种情况下,定义一些检测宏或添加一些#ifdef MY_TRACE ... #endif部分会有所帮助。