大規模な C++ コード ベースでShinyを使用したいのですが、必要なPROFILE_FUNC()
呼び出しをソースに追加したくありません。ソースファイルごとに関数定義を正規表現検索し、左ブラケットの直後にマクロ呼び出しを追加し、結果を g++ にパイプするスクリプトを作成するのは簡単だと思います。しかし、それは非常に明白なソース コード インストルメンテーションのケースのように思えます。
残念ながら、探し回っても、LLVM / clang インストルメンテーションと奇妙な研究ツールへの参照しか見つかりませんでした。これらは、比較的単純な問題に対する非常に複雑な解決策のように見えます。実際、コンパイルの直前に C/C++ コードに対して単純な自動コード編集を実行する簡単な方法はないようです。
そうですか?または、何か不足していますか?
更新:この「C++ コード ベース」は、私が Android に移植しているネイティブ アプリケーションであることを忘れていました。そのため、gprof (Android では使用できません)、Valgrind (使用しているバージョンよりも古いバージョンの NDK が必要)、android-ndk-profiler (Android アクティビティによって読み込まれる動的ライブラリ用) のいずれも使用できません。プレーンな実行可能ファイルではなく、Java またはネイティブのいずれか)。したがって、シャイニーを調べています。
更新 2:以前の主張にもかかわらず、私は実際に Android NDK r8eで Valgrind をビルドすることができたので、Shiny の代わりにそれを使用することにしました。ただし、元の質問は有効だと思います。C / C++ ソース ファイルをコンパイル時に簡単に編集できる簡単なツールはありませんか?