【发布时间】:2023-12-09 09:41:02
【问题描述】:
google 上有很多和我类似的问题,我都试过了,但没有一个有效,所以我必须发布这个问题。
我正在尝试使用 Valgrind 检测一些二进制文件的内存泄漏,这些文件是为我的设备编译的(使用处理器:ARM926EJ-S rev 5 (v5l))。
因此,我正在尝试使用我设备的特定工具链交叉编译 Valgrind。
这是我的过程: 我正在使用 Valgrind 3.13.0 和 Ubuntu 16
1/cd Valgrind-3.13.0
2/sed "s/armv7/arm/g" configure(这样它就不会抱怨不受支持的架构师)。
3/./configure --host=arm-none-linux-gnueabi(使用我特定的交叉编译器,而不是 Linux 的默认)
4/make
弹出如下错误:
error: bad value (cortex-a8) for -mcpu= switch
=> 由于我的设备使用 ARM926EJ-S 处理器,我将 Valgrin-3.13.0 文件夹中所有文件的 cortex-a8 替换为 arm926ej-s。
再次运行上述步骤,又弹出一个错误:
m_dispatch/dispatch-arm-linux.S: Assembler messages:
m_dispatch/dispatch-arm-linux.S:104: Error: selected processor does not support `movw r1,#47'
m_dispatch/dispatch-arm-linux.S:105: Error: selected processor does not support `movw r2,#0'
m_dispatch/dispatch-arm-linux.S:157: Error: selected processor does not support `movw r1,#:lower16:vgPlain_stats__n_xindirs_32'
m_dispatch/dispatch-arm-linux.S:158: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindirs_32'
m_dispatch/dispatch-arm-linux.S:165: Error: selected processor does not support `movw r1,#(((1<<15))-1)'
m_dispatch/dispatch-arm-linux.S:166: Error: selected processor does not support `movw r4,#:lower16:vgPlain_tt_fast'
m_dispatch/dispatch-arm-linux.S:169: Error: selected processor does not support `movt r4,#:upper16:vgPlain_tt_fast'
m_dispatch/dispatch-arm-linux.S:182: Error: selected processor does not support `movw r1,#:lower16:vgPlain_stats__n_xindir_misses_32'
m_dispatch/dispatch-arm-linux.S:183: Error: selected processor does not support `movt r1,#:upper16:vgPlain_stats__n_xindir_misses_32'
Makefile:3224: recipe for target 'm_dispatch/libcoregrind_arm_linux_a-dispatch-arm-linux.o' failed
我做错了什么?
【问题讨论】:
-
你还需要交叉编译 Valgrind。我不熟悉这个流程。
标签: arm embedded cross-compiling valgrind embedded-linux