web-dev-qa-db-fra.com

En utilisant l'outil pin d'Intel sur Ubuntu?

J'aimerais utiliser l'outil de pin d'Intel sur Ubuntu 12.04 et avoir des difficultés à l'installer. J'ai téléchargé pin pour Linux 64 bits à partir d'ici http://www.pintool.org/ , extrait le paquet et compilé les exemples dans source/tools/.. Comment exécuter pin maintenant? A essayé:

pin
pin.sh
./pin

etc, aucun ne semblait fonctionner :( Dois-je installer des bibliothèques supplémentaires ou ...? Merci!

4
FSchmidt

Fondamentalement, les outils pin sont conçus comme des compilateurs "Just In Time (JIT)", de sorte que les deux composants de l'architecture sont Instrumentation et Analysis Code. Comme vous le savez peut-être, PIN tools a la capacité d'instrumenter l'architecture de manière indépendante. Par conséquent, étant donné que l'instrumentation intervient immédiatement avant la première exécution de la séquence de code, vous devez traiter le programme directement avec le point de repère cible.

Voici quelques conseils:

Tout d’abord, allez dans le répertoire parent de l’outil Pin, l’utilisation générale de pin est définie comme suit:

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

Deuxièmement, exportez le chemin de pin vers env pour pouvoir l’utiliser partout ailleurs (dans mon cas, c’est):

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

Vous pouvez maintenant l'utiliser partout pour épingler l'instrument (comptes de compilation, prises de branche, etc.).

i.e.: Il existe quelques exemples de sources pour pouvoir commencer à travailler dans

$ cd source/tools/ManualExamples

comme inscount, linux_buffer, etc. utilisez la commande make pour compiler les codes sources en g ++:

make inscount0.test

puis :

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

pour obtenir la sortie du/bin/ls.

J'espère que ça vous aide.

4
Amir

PIN d'Intel est un framework d'instrumentation binaire, et peut être utilisé pour instrumenter des programmes binaires à la volée. Pour spécifier quelles instructions exactement doivent être instrumentées et avec lesquelles, vous spécifiez un outil d'affichage à épingler. Il n'y a pas vraiment plus d'installation.

Voici un exemple tiré du fichier README sur l'utilisation de pin:

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

Ceci instrumentera et exécutera/bin/ls, la sortie de cet outil est dans opcodemix.out.

2
Pavla

Votre architecture hôte est-elle en 64 bits (AMD64)? Si tel est le cas, vous devrez ajouter la prise en charge 32 bits (i386) car la broche est un programme 32 bits.

$ 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

Ajoutez d’abord le support d’architecture à dpkg.

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

Ensuite, installez les versions i386 des bibliothèques nécessaires. Vous aurez probablement besoin de:

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

Consultez le Guide de l'utilisateur du code PIN sur le site d'Intel, en particulier la section Bibliothèques pour Linux. Alternativement, vous pouvez faire tourner une Ubuntu i386 VM et l'utiliser sans devoir polluer l'espace de votre bibliothèque x64.

0
mikejones