問題タブ [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.

0 投票する
1 に答える
1534 参照

intel-pin - ピンツールで物理アドレスを取得する

ピン インストルメンテーション ツールを使用してメモリ トレースを取得しています。私の実装結果では、トレースが物理アドレスではなく仮想アドレスを示していることがわかりました。Pin ツールで物理アドレスのトレースを取得する方法はありますか? ヘルプ!

0 投票する
1 に答える
276 参照

assembly - シンボルテーブルのない実行可能ファイルの関数呼び出しをカウントする

私は現在、実行時にバイナリ実行可能ファイル内で呼び出されるすべての関数の数を数える必要がある私のアイデアを実現するための迅速な方法を探しています。私の知る限り、インテルの PIN ツールはルーチン呼び出しとそれらのルーチン内の命令の数をカウントできます (こちらを参照してください: https://software.intel.com/sites/landingpage/pintool/docs/67254/Pin/html/index. html#ProcInstrCount )。しかし、シンボル テーブルが利用できない場合はどうなるでしょうか。PINはそれに対処できますか?

ルーチンの名前は必要ありません。開始アドレスで十分です。そのような情報にアクセスするために使用できるツールはありますか?

ちょっとした背景: 実行時に特定の関数呼び出しをクラスター化したいと考えています。たとえば、「更新」クラスター内のすべての定期的な関数呼び出しをクラスター化したいとします。さらに、ユーザー アクション (ボタンを押すなど) の結果としてどの関数が呼び出されているかを認識し、それらの関数を再度クラスター化できるようにしたいと考えています。最後に、どの関数がいつ実行されるかについて、かなり明確なイメージが必要です。これは可能ですか?

アドバイスをありがとう

0 投票する
1 に答える
628 参照

python - Python インクルードを使用してピン ツールをコンパイルすると、エラー C2872 が発生する: 'UINT32': あいまいなシンボル

ピン ツールをコンパイルしようとしていますPython.hが、あいまいなシンボルに関するエラーが 100 を超えています。

を別の名前空間に分離しようとしましたincludeが、他の多くのエラーが発生しました。

を含めても同じことが起こりwindows.hます。

すべてのエラーは次のようになります。

D:\proj\Pin\source\include\pin\gen\types_core.TLH(67): error C2872: 'INT32' : ambiguous symbol could be 'C:\Program Files (x86)\Windows Kits\8.0\Include\shared\basetsd.h(72) : int INT32 or D:\proj\pin\Pin\source\include\pin\gen\types_foundation.TLH(88) : LEVEL_BASE::INT32' D:\proj\pin\Pin\source\include\pin\gen\types_core.TLH(81) : see reference to class template instantiation 'LEVEL_CORE::INDEX<dummy>' being compiled

この問題の簡単な修正方法を知っていますか?

ありがとう!

0 投票する
1 に答える
894 参照

c++ - PIN_SafeCopy で IARG_MEMORYREAD_EA を使用する

IARG_MEMORYREAD_EA のタイプは、PIN で ADDRINT として定義されます。メモリの IARG_MEMORYREAD_EA ロケーションに保存されているデータをフェッチする必要があります。私が理解している限り、特定のアドレスの場所からデータを取得する最も適切な方法は、使用例が次のような PIN_SafeCopy 関数を使用することです。

IARG_MEMORYREAD_EA をこの関数に直接渡そうとすると、コンパイラは型が一致しないと言います(ADDRINT * and ADDRINT)。明らかにそうではありませんが、この機能をどのように使用すればよいかわかりませんでした。

私の現在のコードは次のとおりです。

ProcessMemIns は次のとおりです。

予想どおり、コンパイラから次のエラー メッセージが表示されます。invalid conversion from ‘LEVEL_BASE::ADDRINT {aka long unsigned int}’ to ‘const VOID* {aka const void*}’ [-fpermissive]

PIN_SafeCopy() に IARG_MEMORYREAD_EA を使用するより適切な方法はありますか? または、ポインターを定義して PIN_SafeCopy() に使用する必要がありますか?

0 投票する
1 に答える
777 参照

c++ - Intel ピンをコンパイルできません

64 ビットの ubuntu マシン (12.04) で intel Pin を使用しています。正しい方法でパスをエクスポートしましたが、pin バイナリを実行できません。そのバイナリで「ファイル」を実行すると、32 ビット ELF バイナリであることが示されます。これは問題ですか?同じフォルダーから実行しても、バイナリを実行できません。

私が取得し続けるエラーメッセージはbash: /home/<username>/Downloads/pin-2.14-67254-gcc.4.4.7-linux/pin: No such file or directory

誰かが私がどこで間違ったのか教えてもらえますか?

Eidt: i386 アーキテクチャを追加して、32 ビット ピン バイナリが実行されるようにしましたが、作成した 64 ビット ツールを実行できません。