【问题标题】:Find function definitions in the Linux kernel source tree recursively在 Linux 内核源代码树中递归查找函数定义
【发布时间】:2011-12-03 09:37:38
【问题描述】:

我需要一种从内核源代码树的特定子系统(比如说 mm)中 grep 函数定义的方法。我最初的想法是搜索正则表达式“)\n{”,按照惯例,它是 Linux 内核函数的起点。

遗憾的是,虽然我发现换行符在 grep 中用作分隔符,因此不能在正则表达式中使用。

有人有解决方法或其他有用的命令吗?

谢谢!

【问题讨论】:

  • 好的,我只是想了一下,一个只列出函数定义的正则表达式是:“)$”。由于每个函数定义后跟一个“\n”,并且每隔一个出现的“)”(如在函数调用中)后面都会跟着其他字符或分号,因此上述正则表达式会过滤掉其他所有内容。感谢任何人对此提出一些想法!
  • ctags 是解析大量源代码的有用命令。

标签: regex linux grep kernel


【解决方案1】:

另一种方法是自定义 GCC 编译器以搜索您想要的内容。

特别是,最近的 GCC(即版本 4.6)可以用 plugins(用 C 编码)或用 GCC MELT 编码的扩展进行扩展( MELT 是一种用于扩展 GCC 的高级领域特定语言)。

【讨论】:

    【解决方案2】:

    老实说,您尝试做的是解析,而正则表达式是错误的方法。相信你 可能会得到一些 99% 的时间都有效的东西,但它会以奇怪和意想不到的方式让你失望。

    研究使用解析器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-06
      • 2021-06-19
      • 2012-08-22
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多