我在我的实际程序中发现了以下问题:
´*** glibc detected *** ./PRUssExternal: double free or corruption (top): 0x00024fe8 ***´
我在网上搜索,我发现最有用的程序来管理这个问题是Valgrind。
如何使用gdb跟踪c++中的double free或corruption错误
然后我尝试在交叉编译中编译到我的系统,在配置中使用以下选项。我正在使用Valgrind 3.8.1
@-virtual-machine: ~/valgrind-3.8.1 $CC=arm-cortexa8-linux-gnueabi-gcc CFLAGS="-pipe -Os -mtune=cortex-a8 .3 = armv7-a -mabi = aapcs-linux -msoft-float - i/opt/OSELAS.Toolchain-2011.11.3/arm-cortexa8-linux-gnueabi gcc-4.6.2-glibc-2.14.1-binutils-2.21.1a-kernel-2.6.39-sanitez/sysroot-arm-cortexa8-linux-gnueabi/usr/包括"LDFLAGS ="- l/opt/OSELAS.Toolchain-2011.11.3/arm-cortexa8-linux-gnueabi/gcc-4.6.2-glibc-2.14.1-binutils-2.21.1a-kernel-2.6.39-sanitez/sysroot-arm-cortexa8-linux-gnueabi/usr/lib " ./configure前缀=/opt/valgrid主机= arm-cortexa8-linux-gnueabi—target = arm-none-linux-gnueabi构建= x86_64-ubuntu-linux
这个配置的输出是:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for arm-cortexa8-linux-gnueabi-strip... arm-cortexa8-linux-gnueabi-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether ln -s works... yes
checking for arm-cortexa8-linux-gnueabi-gcc... arm-cortexa8-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether arm-cortexa8-linux-gnueabi-gcc accepts -g... yes
checking for arm-cortexa8-linux-gnueabi-gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of arm-cortexa8-linux-gnueabi-gcc... gcc3
checking whether arm-cortexa8-linux-gnueabi-gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... arm-cortexa8-linux-gnueabi-gcc -E
checking for arm-cortexa8-linux-gnueabi-g++... arm-cortexa8-linux-gnueabi-g++
checking whether we are using the GNU C++ compiler... yes
checking whether arm-cortexa8-linux-gnueabi-g++ accepts -g... yes
checking dependency style of arm-cortexa8-linux-gnueabi-g++... gcc3
checking for arm-cortexa8-linux-gnueabi-ranlib... arm-cortexa8-linux-gnueabi-ranlib
checking for a sed that does not truncate output... /bin/sed
checking for ar... /usr/bin/ar
checking for perl... /usr/bin/perl
checking for gdb... /usr/bin/gdb
checking dependency style of arm-cortexa8-linux-gnueabi-gcc... gcc3
checking for diff -u... yes
checking for a supported version of gcc... ok (4.6.2)
checking build system type... x86_64-ubuntu-linux-gnu
checking host system type... arm-cortexa8-linux-gnueabi
checking for a supported CPU... no (arm)
configure: error: Unsupported host architecture. Sorry
在这个输出的最后一行,出现了My Issue,尽管我查找了一些信息,并且cortex是受支持的平台之一。
valgrind on ARM9?
因此,我的问题是我的板是否不受支持,因为我使用的库不兼容,或者可能是其他原因。或者另一方面,我可以毫无畏惧地编译valgrind并跳过这个检查。
感谢您的宝贵时间
对
Breci01010…
您应该编辑配置文件。找到一行"armv7*"并将其更改为"arm*"-这就足够了。