4

いくつかの入力プロパティに基づいて、入力C /C++コードの自動インストルメンテーションを実行するプログラムを作成したいと思います。私はそうする方法を学び始めるのに良い場所を探しています(主に計装の方法、どこでそうするかなどに関連しています)。私は幸運もなくしばらくの間オンラインで検索してきました。ですから、誰かが私を出発点として良い場所に向けることによって私を助けてくれるなら、私は感謝しています。

ありがとうございました

4

2 に答える 2

3

まだ見つけていない場合は、カスタムLLVM パスGCC MELTを使用するための優れたアイデアを備えた非常によく似た質問があります: Instrumenting C/C++ code using LLVM

より単純なものを探している場合は、このプリプロセッサ ベースのソリューションをチェックして、C++ の Basic Instrumentation および Profiling Framework を確認してください。

于 2012-04-29T22:00:34.883 に答える
2

Linux を使用していて、システム API 呼び出しだけが必要な場合は、straceを参照するか、この質問を読んでください。

独自のコードを計測したい場合は、さらに複雑になります。プロファイラーは常にこれを行いますが、コンパイラーと連携してインストルメンテーションを追加します。gcc は、ユーザー定義のインスツルメンテーションのために、これの何らかの形式をサポートしているようです。この質問を参照してください。

プログラム全体をインストルメント化する必要があることはめったにありません。通常は、いくつかの重要な領域でのみインストルメント化が必要です。この場合、いくつかのインストルメンテーション マクロを定義するか、いくつかの#ifdef MY_TRACE ... #endifセクションを追加すると役立ちます。

于 2012-04-29T21:57:56.873 に答える