2013-06-04 18 views
6

ich in meinem aktuellen Programm für ARM CortexA8 mit Linux ein folgendes Problem gefunden habe:Valgrind in ARM CortexA8 Issue "configure: error: Nicht unterstützte Host-Architektur"

´*** glibc detected *** ./PRUssExternal: double free or corruption (top): 0x00024fe8 ***´ 

I`m in der für die Suche Web und ich fand, dass das nützlichste Programm, um dieses Problem zu lösen, Valgrind ist.

How to track down a double free or corruption error in C++ with gdb

Dann versuche ich zu meinem System in einer Cross-Compilierung zu kompilieren, mit den folgenden Optionen in der Konfiguration. Ich bin mit Valgrind 3.8.1

@-virtual-machine:~/valgrind-3.8.1$ CC=arm-cortexa8-linux-gnueabi-gcc CFLAGS="-pipe -Os -mtune=cortex-a8 -march=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/include" 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 -prefix=/opt/valgrid -host=arm-cortexa8-linux-gnueabi -target=arm-none-linux-gnueabi -build=x86_64-ubuntu-linux

Und die Ausgabe dieser Konfiguration ist:

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 

In der letzten Zeile dieser Ausgabe wird mein Problem erschien, obwohl ich einige Informationen gesucht und die Cortexa8 ist eine der unterstützten Platten.

valgrind on the ARM9?

Aus diesem Grunde meine Frage ist, ob mein Board nicht unterstützt, da die Bibliotheken, die ich nicht kompatibel verwenden sind oder könnte es anderer Grund sein. Oder andererseits könnte ich den Valgrind ohne Angst kompilieren und diese Überprüfung überspringen.

Vielen Dank für Ihre Zeit

-Regards

Breci01010 ...

+1

Laut http://sourceforge.net/mailarchive/forum.php?thread_name=4CD93681.2020608%40yandex.ru&forum_name=valgrind-users könnte dies eine Auswirkung Ihres ungewöhnlich expliziten Toolchain-Namens sein. Wenn Sie dem folgen, können Sie versuchen --host = armv7-unknown-linux-gnueabi. – unixsmurf

+0

Danke unixsmurf, ich habe bereits getestet, auf die neue Konfiguration in Host zu ändern und so funktioniert es richtig. Danke für deine Zeit -Regards – breci010101

+0

Hallo zusammen, ich habe das Valdgrid im CortexA8 erfolgreich kompiliert und installiert. Aber das Problem, das ich jetzt finde, ist, weil ich nicht die Standard-C-Bibliotheken verwende [Wie Valgrid kompilieren] (http://blog.galemin.com/2010/10/how-to-build-valgrind- 3-6-0-for-beagleboard-xm-on-ubuntu /) Wie jemand weiß, dass anderes System mit nicht-Standardbibliotheken freundlicher arbeitet, die nicht gdb ist. -Danke – breci010101

Antwort

10

Sie bearbeiten sollten Datei konfigurieren. Finde eine Zeile "armv7 *" und ändere sie in "arm *" - das wäre genug.

+0

schön, das hat es für mich mit Valgrind-3.10.1, thx! – the1plummie

+0

Die Konfigurationsdatei ist eine generierte Datei. Also habe ich zuerst auf den Fehler gewartet. Hat die Änderung in der Datei vorgenommen und dann inkrementell neu kompiliert. Ich wollte nur wissen, woher die Konfigurationsdatei kopiert wird? – Aadishri