【发布时间】:2012-04-29 21:48:19
【问题描述】:
我想编写一个自动检测输入 C/C++ 代码的程序 基于一些输入属性。我正在寻找一个开始学习如何做的好地方(主要与如何做仪器,在哪里做等有关)。我已经在网上搜索了一段时间,没有任何运气。因此,如果有人能帮我指出一个好的起点,我将不胜感激。
谢谢
【问题讨论】:
标签: c++ c instrumentation
我想编写一个自动检测输入 C/C++ 代码的程序 基于一些输入属性。我正在寻找一个开始学习如何做的好地方(主要与如何做仪器,在哪里做等有关)。我已经在网上搜索了一段时间,没有任何运气。因此,如果有人能帮我指出一个好的起点,我将不胜感激。
谢谢
【问题讨论】:
标签: c++ c instrumentation
如果您还没有找到它,这里有一个非常相似的问题,其中包含使用自定义 LLVM Pass 和 GCC MELT 的好主意:Instrumenting C/C++ code using LLVM
如果您正在寻找更简单的东西,请查看Basic Instrumentation and Profiling Framework for C++ 这个基于预处理器的解决方案
【讨论】:
如果您使用的是 Linux,并且只想调用系统 API,请查看 strace,或阅读 this question。
如果您想检测自己的代码,事情会变得更加棘手。探查器一直这样做,但它们与编译器一起工作以添加检测。 gcc 似乎支持某种形式的用户定义检测。见this question。
我发现我很少需要对整个程序进行检测——通常只有几个关键区域需要它。在这种情况下,定义一些检测宏或添加一些 #ifdef MY_TRACE ... #endif 部分会有所帮助。
【讨论】: