我使用 -m32 gcc 选项编译了一个 C 程序。我想使用 Pin 工具来分析该程序。我的内核是 64 位的。
我已经尝试过:-
1) pin -t64 <64-bit toolname> -t <32-bit toolname> -- <application>
2) pin -t <32-bit toolname> -- <application>
3) pin -t <64-bit toolname> -- <application>
对于针对 32 位和 64 位架构进行不同编译的这两个工具,我有相同的 .cpp 工具文件。
案例 3 引发错误“无法加载..检查架构类型”。 情况 1 和 2,该命令成功,但产生了一些意外的输出,因为在这种情况下写入文件的图像名称为空,但在使用 64 位应用程序执行时包含正确的结果。对于这种情况,设置固定工具的正确方法是什么?
最佳答案
我找到了一种解决方法,可以在 64 位 arch 中编译 32 位 pin 库(我的意思是 instcount0 )。
我确实修改了与构建库相关的配置文件。
我的 pin 位于/opt/所以,我编辑了
/opt/pin-3.0-76991-gcc-linux/source/tools/Config
在第 38 行
# Define the architecture of the target
# ; TARGET ?= $(HOST_ARCH)
TARGET = ia32
ifeq ($(TARGET),ia32)
BITS := 32
else
BITS := 64
endif
我刚刚将目标更改为 ia32。构建后工作正常。
关于c - 使用 INTEL PIN 在 64 位系统上配置 32 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35454343/