c - 使用 INTEL PIN 在 64 位系统上配置 32 位应用程序

标签 c profiling cross-compiling intel-pin

我使用 -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/

相关文章:

c - 如何将短格式转换为 ASCII?

linux - oprofile 还活着吗?

python - 如何为 unicode ucs4 构建 numpy

c++ - 如何检查 arm-none-linux-gnueabi-g++ 对 C++11 的支持

c - 使用二叉搜索树 C 编程进行登录验证

c - 如何正确使用 posix_memalign

profiling - 周期计数测量

iphone - 使用 ARC 时释放对象

c++ - 在 Jetson TK1 上编译代码

c - pci_set_dma_mask 的功能