問題タブ [intel-pin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ピン ツールを使用して、バイナリ インストルメンテーションで特定のループを追跡するにはどうすればよいですか?
私はインテル ピン ツールを初めて使用し、バイナリ ファイル内の特定のループを追跡したいのですが、実行ごとに変更された命令のアドレスを実行ごとに見つけました。実行ごとに変化しますか?
編集 0:
次のアドレスがあります。そのうちの 1 つが RVA です:( アドレスの最初のセクション (小さなアドレス) は実行ごとに一定ですが、最後のセクション (大きなアドレス) は実行ごとに変更されます)
アドレス loop_repeation No. _of_Instruction_In_Loop
4195942 1 8
4195972 1 3 ......
... ...
140513052566480 1 2
...... ... ...
binaryfiles - Intel Pin Tool: アドレスから命令を取得
Intel の Pin Tool を使用してバイナリ インストルメンテーションを行っていますが、特定のアドレスに命令バイト コードを取得する API があるかどうか疑問に思っていました。
何かのようなもの:
ここで、addr は目的のアドレスです。
Pin によって指定された関数 Instruction (単純な/手動の例の多くで使用されている) が命令を取得することは知っていますが、他のアドレスの命令を知る必要があります。私は役に立たずにウェブを熟読しました。どんな助けでも大歓迎です!
乾杯
c++ - インテル ピン内部スレッドを使用するプロデューサー コンシューマー
ピン ツールの分析とデータ (分析から収集された) の記録部分を分離するために、プロデューサー コンシューマー モデルを実装しようとしています。PIN スレッド API を調べたところ、何らかの述語に基づいてスレッドを一時停止したり、スレッドに再開を通知したりできる関数は見つかりませんでした ( POSIX スレッドのようpthread_cond_wait()
に )。pthread_cond_signal()
したがって、ビジー待機を回避しながら、既存の関数を使用してプロデューサー コンシューマー モデルを実現するための回避策はありますか。
注:プロデューサ スレッドとコンシューマ スレッドはどちらも、 によって作成された内部スレッドですPIN_SpawnInternalThread()
。
c++ - PIN ツールは、他のコマンドを実行するためのコードを含む bash スクリプトを計測できますか?
バイナリ イメージ内の特定の関数の前後にコードを挿入できる PIN ツールを作成しました。単一のバイナリ イメージに対して機能しています。
今、私の目的は、そのツールを使用して Linux で Xserver を計測することです。PIN ツールで「startx」を計測しようとしましたが、うまくいきませんでした。後で、startx は他のコマンドを実行するシェル スクリプトにすぎないことがわかりました。
PIN を使用して xserver を計測する場合、どのような手順に従う必要がありますか? PIN を使用して何らかの方法でシェル スクリプトを計測することは可能ですか?
intel-pin - ピンツールでRTNを名前で見つける方法は?
RTN_FindByName() を使用して特定の RTN を検索しましたが、うまくいきませんでした。さらに、コンパイラに RTN をインライン化しないように強制しようとしましたが、まだ機能していません
。コードをテストします。
ピンツールのコード:
どうすればそれを修正できますか、または別の方法でそれを行うことができますか?
コンパイラ: gcc バージョン 4.8
C++ 言語
OS: Ubuntu 14.04 LTS、64 ビット
(テスト コードの) 出力:
Not Found RTN
Not Found RTN
Not Found RTN
c++ - 非 JIT モードでピン ツールを使用する方法
ピンツールを作成し、JIT モードで使用しました。Pin チュートリアルから、Pintool は非 JIT モードでも使用できることを読みましたが、その方法を理解できません。例が必要です。ありがとう。
intel-pin - pintool でインストルメント化するコードの領域を指定するにはどうすればよいですか?
Pin には、ルーチン、命令、イメージ、トレースの 4 つのレベルの粒度があります。計装コードの挿入を開始および停止する制限/領域を指定できますか? ( # start instrumentation , # end instrumentation ) のようなディレクティブまたはそのようなものによって、
例:
for( int i=0; i< x; i++)
{
#startInstrumentation
for( ....;.....;.....)
{
// some code
// function call, conditions , loops, ....
}
#endInstrumentation
}
これを行う方法はありますか?