【问题标题】:Identify C functions (opening and closing braces) in a file识别文件中的 C 函数(左大括号和右大括号)
【发布时间】:2018-07-03 06:44:34
【问题描述】:

我有一个 C 文件,我想在每个函数的开头和结尾添加一个打印,包括文件名、函数名和行号。 我正在尝试使用 python 为整个 C 文件文件夹自动执行此操作。

示例:在 math.c 文件中添加函数

int add(int a, int b){
   sum = a +b;
   return sum;
}

我希望结果文件看起来像这样:

int add(int a, int b){
   printf("Math.c, add, 12");
   sum = a +b;
   return sum;     
}

我正在查看此链接中建议的正则表达式Using Python Regex to Find C function in File

还有其他建议吗? Ctags 是我正在探索的另一个选项,但我更喜欢为此目的使用 python 库。

编辑:

  • 在微控制器上运行代码
  • 不使用 Linux
  • 功能有限的调试器(只能获取 printf)

【问题讨论】:

标签: python c


【解决方案1】:

您可以使用预定义的宏,例如 __file__、__func__ 和 __line__。这将导致一个常见的 printf 语句:

printf("%s, %s, %d\n", __FILE__, __func__, __LINE__)

你需要添加到每个函数中。

这个问题已经在这里得到了类似的回答: Print the file name, line number and function name of a calling function - C Prog

【讨论】:

  • 名称区分大小写;文件和行应该是大写的。
  • __LINE__ 需要 %d 而不是 %s
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 2019-02-03
  • 2019-02-22
相关资源
最近更新 更多