カーネルソースツリーの特定のサブシステム(例えばmmと言う)から関数定義をgrepする方法が必要です。私の元々の考えは、正規表現 ")\ n {"を検索することでした。これは、慣例によりLinuxカーネル関数の出発点です。Linuxカーネルソースツリーの関数定義を再帰的に見つける
悲しいことに、私は改行文字がgrepの区切り文字として使用されていることを知っていましたので、正規表現では使用できません。
誰かが回避策や他の有用なコマンドを持っていますか?
ありがとうございます!
カーネルソースツリーの特定のサブシステム(例えばmmと言う)から関数定義をgrepする方法が必要です。私の元々の考えは、正規表現 ")\ n {"を検索することでした。これは、慣例によりLinuxカーネル関数の出発点です。Linuxカーネルソースツリーの関数定義を再帰的に見つける
悲しいことに、私は改行文字がgrepの区切り文字として使用されていることを知っていましたので、正規表現では使用できません。
誰かが回避策や他の有用なコマンドを持っていますか?
ありがとうございます!
もう1つの方法は、GCCコンパイラをカスタマイズして、必要なものを検索することです。特に
が、最近のGCC(つまり、バージョン4.6である)、またはGCC MELTで符号化された拡張子を持つプラグイン(Cでコーディングされた)を用いて拡張することができる(MELTは拡張する高レベルのドメイン固有言語でありますGCC)。
正直なところ、あなたがしようとしているのは解析であり、正規表現は間違ったアプローチです。確かに、 は時間の99%を稼働するものを得るかもしれませんが、奇妙で予期しない方法で失敗するでしょう。 「)$」:
[OK]をパーサーを使用してに探し
は、私はちょうどそれを考え直しとされ、リストのみの関数の定義を行い、正規表現を与えました。 すべての関数定義の後に "\ n"が続き、関数呼び出しのように ")"が他の文字またはセミコロンのいずれかの後に続くため、前述の正規表現は他のすべてをフィルタリングします。 誰かに考えを入れてくれてありがとう! – Spap
ctagsは大量のソースコードを解析するのに便利なコマンドです。 – osgx