在每个C函数的开头自动运行代码

时间:2011-12-13 14:18:09

标签: c function debugging gcc c-preprocessor

我的问题几乎与How to add code at the entry of every function?相同,但对于 C

由于我正在维护其他人的大型无证项目,我希望代码类似于

static C0UNT_identifier_not_used_anywhere_else = 0;
printf("%s%s:%d#%d", __func__, strrchr(__FILE__,'/'), __LINE__, ++C0UNT_identifier_not_used_anywhere_else);

在每个函数的输入上运行,以便我

  1. 记录所谓的内容,
  2. 可以告诉你,哪个n th 调用它破坏的函数。
  3. 现有代码包含数百个源文件,因此放置宏是不可行的。

    #define ENTRY_CODE ...
    ...
    int function() {
      ENTRY_CODE
      ...
    }
    

    在每个功能中。我也没有使用DevStudio,Visual Studio或其他提供__cyg_profile_func_enter或其他扩展程序的编译器。

    或者,我想以类似的方式在退出时打印每个函数的返回值。我也可以这样做吗?

1 个答案:

答案 0 :(得分:9)

由于您已使用gcc标记,因此它具有-finstrument-functions选项:

  

生成用于进入和退出函数的检测调用。 ...

相关问题