Linux 4.0上的英特尔Pin工具

时间:2016-02-19 17:36:05

标签: linux intel instrumentation

我得到了" E:4.0不是受支持的Linux版本"当我尝试在我的Linux机器上运行ManualExamples时。

终端输出

pin/source/tools/ManualExamples$ ../../../pin -t obj-intel64/inscount0.so -- /bin/ls
E: 4.0 is not a supported linux release

pin不支持最新的Linux内核吗?

谢谢!和Manish

3 个答案:

答案 0 :(得分:2)

Pin 3.0现已推出,并与Linux Kernel 4.0或更高版本兼容。

但是,您现有的Pintool(即Pin 2.x兼容)可能无法与Pin 3.0一起使用,因为它会强制您使用PinCRT并且不允许您将工具与外部库链接。

但是,在内核4.0或更高版本上使用Pin 2.x还有一个解决方法。只需使用你的Pintool -injection child-injection parent。出于某种原因,Pin似乎并不关心在这些情况下运行的是哪个内核版本。

pin_kit$ uname -a
Linux 4.8.0-28-generic #30-Ubuntu SMP Fri Nov 11 14:03:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

pin_kit$ ./pin -t source/tools/ManualExamples/obj-intel64/inscount0.so -- /bin/ls
E:4.8 is not a supported linux release

pin_kit$ ./pin -injection child -t source/tools/ManualExamples/obj-intel64/inscount0.so -- /bin/ls
doc  extras  ia32  inscount.out  intel64  LICENSE  pin  pin.log  pin.sh  README  redist.txt  source

pin_kit$ ./pin -injection parent -t source/tools/ManualExamples/obj-intel64/inscount0.so -- /bin/ls
doc  extras  ia32  inscount.out  intel64  LICENSE  pin  pin.log  pin.sh  README  redist.txt  source

答案 1 :(得分:0)

还没有可用的Pin版本支持Linux内核4.0或更高版本。

您可以尝试使用DynamoRIO

$ cd DynamoRIO-Linux-6.1.0-2
$ bin64/drrun -c samples/bin64/libinscount.so -- /bin/ls
Client inscount is running
ACKNOWLEDGEMENTS  bin64  docs       drmemory   ext      lib32  License.txt  README   tools
bin32             cmake  drcov.out  dynamorio  include  lib64  logs         samples
Instrumentation results: 506331 instructions executed

答案 2 :(得分:0)

使用-ifeellucky选项。它适用于4.5内核。