web-dev-qa-db-ja.com

Ubuntuでインテルのピンツールを使用していますか?

Ubuntu 12.04でIntelのピンツールを使用し、インストールに問題があります。ここからLinux 64ビット用のピンをダウンロードしました http://www.pintool.org/ 、パッケージを抽出し、source/tools /にサンプルをコンパイルしました。試した:

pin
pin.sh
./pin

など、何も動作していないようです:(追加のライブラリをインストールする必要がありますか...?ありがとう!

4
FSchmidt

基本的にピンツールは「Just In Time(JIT)」コンパイラとして設計されているため、アーキテクチャの背後にある2つのコンポーネントはInstrumentation and Analysis Codeです。ご存知かもしれませんが、PINツールには、アーキテクチャを独立してインスツルメントする機能があります。したがって、コードシーケンスが最初に実行される直前にインストルメンテーションが発生するため、プログラムをターゲットベンチマークで直接処理する必要があります。

ヒントを次に示します。

まず、ピンツールの親ディレクトリに移動し、ピンの一般的な使用法を次のように定義します。

pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>

次に、ピンのパスをenvにエクスポートして、他のすべての場所で使用できるようにします(私の場合は)。

export PATH=$PATH:/home/amir/pin-2.12-58423-gcc.4.4.7-linux/

これで、どこでもそれを使用して、機器を固定することができます(コンパイル数、分岐の取得など)。

すなわち:で回避策を開始するためのいくつかのサンプルソースがあります

$ cd source/tools/ManualExamples

inscount、linux_bufferなどのように、makeコマンドを使用してソースコードをg ++コンパイルします。

make inscount0.test

その後 :

$ pin -t inscount0.so -- /bin/ls

/ bin/lsの出力を取得します。

それがあなたを助けることを願っています。

4
Amir

IntelのPINはバイナリインストルメンテーションフレームワークであり、バイナリプログラムをその場でインストルメントするために使用できます。どのインストラクションを正確にインスツルメントする必要があり、どのインストラクションを使用してピン留めするかを指定するには、ピンツールを指定します。実際には、それ以上の「インストール」はありません。

ピンの使用方法に関するREADMEファイルの例:

pin -t obj-intel64/opcodemix.so-/ bin/ls

これにより、/ bin/lsがインスツルメントおよび実行され、このツールの出力はopcodemix.outにあります。

2
Pavla

ホストアーキテクチャは64ビット(AMD64)ですか?その場合、ピンは32ビットプログラムであるため、32ビット(i386)サポートを追加する必要があります。

$ file pin
pin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.2.5, stripped

まず、dpkgにアーキテクチャサポートを追加します。

$ Sudo dpkg --add-architecture i386
$ Sudo aptitude update   # or apt-get if you use that

次に、必要なライブラリのi386バージョンをインストールします。おそらく必要になるでしょう:

  • libc6:i386
  • libstdc++6:i386
  • libgcc1:i386
  • libelf1:i386
  • libdw1:i386

IntelのサイトのPinユーザーガイド、特にLinuxのライブラリセクションを確認してください。または、i386 Ubuntu VMを起動して、x64ライブラリのスペースを汚染することなく使用できます。

0
mikejones