我想编写一个程序来自动检测输入C / C ++代码 基于一些输入属性。我正在寻找一个好的地方开始学习如何这样做(主要涉及如何做仪器,在哪里这样做,等等)。我一直在网上搜索一段时间没有任何好运。因此,如果有人能指导我到一个好的起点,我会感激不尽。
谢谢
答案 0 :(得分:2)
如果您还没有找到它,这里有一个非常相似的问题,可以使用自定义LLVM Pass和GCC MELT:Instrumenting 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
部分会有所帮助。