在 Ubuntu 上使用英特尔的 pin 工具?

FSc*_*idt 5 command-line intel 12.04

我想在 Ubuntu 12.04 上使用英特尔的 pin 工具,但在安装时遇到问题。我从http://www.pintool.org/下载了适用于 Linux 64 位的 pin ,解压缩包并在 source/tools/ 中编译示例。我现在如何运行 pin?尝试:

pin
pin.sh
./pin
Run Code Online (Sandbox Code Playgroud)

等等,似乎都没有工作:(我需要安装任何额外的库还是...?谢谢!

Ami*_*mir 4

基本上引脚工具被设计为“即时(JIT)”编译器,因此该架构背后的两个组件是检测和分析代码。如您所知,PIN 工具能够独立检测架构。因此,由于检测发生在代码序列第一次执行之前,因此您必须直接使用目标基准测试来处理程序。

以下是一些提示:

首先进入Pin工具的上级目录,pin的一般用法定义为:

pin [OPTION] [-t <tool> [<toolargs>]] -- <command line>
Run Code Online (Sandbox Code Playgroud)

其次,将 pin 的路径导出到环境中,以便能够在其他地方使用它(在我的例子中是):

export PATH=$PATH:/home/amir/pin-2.12-58423-gcc.4.4.7-linux/
Run Code Online (Sandbox Code Playgroud)

现在,您可以在任何地方使用它来固定仪器(编译计数、采用的分支等)。

即:有一些示例源可以开始解决

$ cd source/tools/ManualExamples
Run Code Online (Sandbox Code Playgroud)

像inscount、linux_buffer等使用make命令来g++编译源代码:

make inscount0.test
Run Code Online (Sandbox Code Playgroud)

进而 :

$ pin -t inscount0.so -- /bin/ls
Run Code Online (Sandbox Code Playgroud)

获取 /bin/ls 的输出。

希望对您有帮助。


小智 2

Intel 的 PIN 是一个二进制检测框架,可用于动态检测二进制程序。要指定必须准确检测哪些指令以及使用哪些指令,您可以指定要固定的 pintool。实际上没有任何进一步的“安装”。

以下是自述文件中有关如何使用 pin 的示例:

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

这将检测并运行 /bin/ls,该工具的输出位于 opcodemix.out 中。