This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
Re: ARM/linux gdb stops and gives no info
- To: Fernando Nasser <fnasser at cygnus dot com>
- Subject: Re: ARM/linux gdb stops and gives no info
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Tue, 30 May 2000 18:00:18 +0100
- Cc: gdb at sourceware dot cygnus dot com, scottb at rebel dot com
- Cc: rearnsha at arm dot com
- Organization: ARM Ltd.
- Reply-To: rearnsha at arm dot com
> > > > I can understand not being able to unpick the stack frame if I've jumped
> > > > to never-never land, but to not even be able to display the registers
> > > > makes the debugger useless.
[...]
> Peter Schauer added the test for NULL frames in there back in 1995. I believe
> it was causing core dumps, but I am not sure as the ChangeLog entry does not give
> the motive (we nowadays make sure it does, but that was not always true at the time):
>
> * infcmd.c (registers_info): Error out if selected_frame is NULL.
>
> I believe the default gdb routine (if the target does not define DO_REGISTERS_INFO)
> does not depend on selected_frame but I can't be sure about all targets.
>
> I quickly created the patch below. I have no time to test it these days.
> If you care applying it to your sources and trying I would appreciate.
> Otherwise it goes in my 25 pages long TODO list.. ;-)
Sadly, gdb won't even compile at the moment.
gcc -c -g -O2 -I. -I/net/home/rearnsha/gnusrc/utils/gdb
-I/net/home/rearnsha/gnusrc/utils/gdb/config -DHAVE_CONFIG_H
-I/net/home/rearnsha/gnusrc/utils/gdb/../include/opcode
-I/net/home/rearnsha/gnusrc/utils/gdb/../readline/.. -I../bfd
-I/net/home/rearnsha/gnusrc/utils/gdb/../bfd -I/net/home/rearnsha/gnusrc/u
tils/gdb/../include -I../intl -I/net/home/rearnsha/gnusrc/utils/gdb/../intl
-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses
-Wpointer-arith -Wuninitialized /net/home/rearnsha/gnusrc/utils/gdb/core-r
egset.c
In file included from /net/home/rearnsha/gnusrc/utils/gdb/config/tm-linux.h
:36,
from tm.h:27,
from /net/home/rearnsha/gnusrc/utils/gdb/defs.h:719,
from /net/home/rearnsha/gnusrc/utils/gdb/core-regset.c:36:
/net/home/rearnsha/gnusrc/utils/gdb/config/tm-sysv4.h:30: warning:
`IN_SOLIB_CALL_TRAMPOLINE' redefined
/net/home/rearnsha/gnusrc/utils/gdb/config/arm/tm-arm.h:517: warning: this
is the location of the previous definition
/net/home/rearnsha/gnusrc/utils/gdb/config/tm-sysv4.h:36: warning:
`SKIP_TRAMPOLINE_CODE' redefined
/net/home/rearnsha/gnusrc/utils/gdb/config/arm/tm-arm.h:518: warning: this
is the location of the previous definition
In file included from /net/home/rearnsha/gnusrc/utils/gdb/core-regset.c:52:
/net/home/rearnsha/gnusrc/utils/gdb/gregset.h:29: parse error before
`gdb_gregset_t'
gdb/config/nm-linux.h contains the defines
#define GDB_GREGSET_T elf_gregset_t
#define GDB_FPREGSET_T elf_fpregset_t
But elf_gregset_t is defined in linux/elfcore.h, and nothing includes that
file :-)
My machine is armv4l-unknown-linux-gnuoldld if that makes any differnce.
R.
Scott,
/usr/include/sys/procfs.h contains an include of sys/elf.h, but this file
doesn't exist. Should it be the same as /usr/include/elf.h?