Hi,
I cross-compiled gbd 6.3 for arm-linux, and I can't make it working. Here is the problem : whatsoever the program I try to debug, I get the same error :
# gdb /bin/ls GNU gdb 6.3 Copyright 2004 Free Software Foundation, Inc. [...] This GDB was configured as "arm-linux-uclibc"...(no debugging symbols found)
(gdb) r Starting program: /bin/ls
Program received signal SIGILL, Illegal instruction.
0x400035e4 in ?? () (gdb) bt #0 0x400035e4 in ?? ()
# cat /proc/795/maps (795 is of course the pid of /bin/ls running in gdb) [...]
40000000-40005000 r-xp 00000000 00:0b 9032003 /lib/ld-uClibc-0.9.28.so [...]
I tried the same thing with a statically linked program :
# file /tmp/a.out /tmp/a.out: ELF 32-bit LSB executable, ARM, version 1 (ARM), statically linked, not stripped
# gdb a.out [...] This GDB was configured as "arm-linux-uclibc"... (gdb) r Starting program: /var/tmp/a.out
Program received signal SIGILL, Illegal instruction.
0x00008090 in _start () (gdb) bt #0 0x00008090 in _start () Cannot access memory at address 0x0 (gdb) p/x *(unsigned long *)0x00008090 $1 = 0xe3a0e000
cat /proc/824/maps
00008000-0004a000 r-xp 00000000 00:0b 8998147 /tmp/a.out
00052000-00053000 rw-p 00042000 00:0b 8998147 /tmp/a.out
00053000-00054000 rwxp 00053000 00:00 0 [heap] becb1000-becc6000 rwxp becb1000 00:00 0 [stack]
I tried putting breakpoints on main, _init and __uclibc_start_main (for the dynamically linked binaries) and it's always the same error.
I looked on the net for this problem, and all I found was a 2002 patch on crt0.S (which can't be applied :)) and some advices on --build and
--host options to pass to the configure of gdb ; but they seems to be correct.
If anyone have an idea or advice, it would be great :)
(and if there is a better group in Usenet for this kind of problem, please tell me)
-- Pierre-Francois