breakpoints not working in gdbserver
Daniel Jacobowitz
drow@mvista.com
Tue Aug 13 15:42:00 GMT 2002
On Wed, Aug 14, 2002 at 12:30:42AM +0200, Simon Posnjak wrote:
> Hi all,
>
> I'm trying out a cross-debuger for arm/ia32 development. I have build
> gdb for arm that runs on ia32 (./configure --host=i686-pc-linux-gnu
> --target=armv4l-unknown-linux --prefix=/usr/local/arm/
> --exec-prefix=/usr/local/arm/ --program-prefix=arm-)
> and gdbserver for arm (sh configure --target=armv4l-unknown-linux).
That's not right. You have to configure gdbserver using
--host=armv4l-unknown-linux, not --target.
> Program received signal SIGILL, Illegal instruction.
> 0x40002b38 in _dl_debug_state ()
> from /staff2/4pot/buildroot/build/stage/lib/ld-uClibc.so.0
> (gdb) bt
> #0 0x40002b38 in _dl_debug_state ()
> from /staff2/4pot/buildroot/build/stage/lib/ld-uClibc.so.0
> #1 0x40001c74 in _dl_parse_copy_information ()
> from /staff2/4pot/buildroot/build/stage/lib/ld-uClibc.so.0
> (gdb)
>
> The program dies with Illegal instruction - if I run it without
> gdbserver it is working fine.
>
> I'm using a home-made linux system:
> kernel 2.4.18
> uClibc 0.9.14
> gcc-2.95.3
>
> Is this maybe a problem with uclibc... or is this problem of
> gdb(server)?
Now, I just checked, and the FSF tree does indeed have the correct
breakpoint instruction on ARM. And GDB is placing that breakpoint
anyway, not gdbserver. I assume you're actually running a Linux kernel
- Linux has a different breakpoint convention from ARM hardware.
Need a little more information. Please set remote_debug to 1 and
rebuild gdbserver, and send the output...
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
More information about the Gdb
mailing list