コンパイルするプログラムのドメイン固有の分析を行う GCC プラグインを作成しようとしています。生成されたオブジェクト ファイルに、分析結果をある種のメタデータ (デバッグ情報など) として埋め込む最善の方法を考えています。
理想的には、いくつかのメタデータ (私の場合はテキスト) を各オブジェクト ファイルに埋め込む必要があり、リンカーはリンクするすべてのオブジェクトからのデータを保持する必要がありますobjdump
。readelf
または類似。
私の現在のアイデアは、GIMPLE AST に追加することによって、一意の名前のグローバル文字列変数を各コンパイル ユニットに追加しようとすることです。ただし、より「規律ある」方法があるかどうかは疑問です。プラグインはどのようにデバッグ情報やその他のメタデータを生成できますか?