我得到了" 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
答案 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内核。