Я хотел бы использовать инструмент pin-кода Intel в Ubuntu 12.04 и у меня возникли проблемы с его установкой. Я скачал pin для Linux 64bit отсюда http://www.pintool.org/ , извлек пакет и скомпилировал примеры в source / tools / .. Как мне запустить pin сейчас? Пробовал:
pin
pin.sh
./pin
и т. Д., Похоже, ни одна из них не работала :( Нужно ли устанавливать какие-либо дополнительные библиотеки или ...? Спасибо!
По сути, инструменты булавок спроектированы как компиляторы «Just In Time (JIT)», поэтому двумя компонентами архитектуры являются Code Instrumentation and Analysis. Как вы, возможно, знаете, инструменты ПИН-кода могут независимо обрабатывать архитектуру. Поэтому, поскольку инструментарий происходит непосредственно перед тем, как последовательность кода выполняется в первый раз, вы должны обработать программу напрямую с целевым тестом.
Вот несколько советов:
Прежде всего, перейдите в родительский каталог инструмента Pin, общее использование 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.
Надеюсь, это поможет вам.
ПИН-код Intel представляет собой бинарный инструментарий, и его можно использовать для управления бинарными программами на лету. Чтобы указать, какие именно инструкции должны быть инструментированы, а с какими вы указываете pintool для закрепления. Больше нет никакой «установки».
Вот пример из файла README о том, как использовать pin:
pin -t obj-intel64 / opcodemix.so - / bin / ls
Это будет инструмент и работать / bin / ls, вывод для этого инструмента находится в opcodemix.out.
Является 64-разрядной Ваша архитектура хоста (amd64)? Если так, необходимо будет добавить 32-разрядный (i386) поддержка, поскольку контакт является 32-разрядной программой.
$ 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, конкретно раздел Libraries for Linux. С другой стороны, Вы могли вращать i386 Ubuntu VM и использование это, не имея необходимость загрязнять Ваше x64 пространство библиотеки.