This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: 8-byte register values on a 32-bit machine
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Stephane Carrez <stcarrez at nerim dot fr>
- Cc: Michael Elizabeth Chastain <mec at shout dot net>, kettenis at chello dot nl,brobecker at gnat dot com, gdb at sources dot redhat dot com
- Date: Sun, 2 Mar 2003 23:50:39 -0500
- Subject: Re: 8-byte register values on a 32-bit machine
- References: <200303020651.h226px701731@duracef.shout.net> <3E61D045.1040000@nerim.fr>
On Sun, Mar 02, 2003 at 10:35:01AM +0100, Stephane Carrez wrote:
> Hi!
>
> Michael Elizabeth Chastain wrote:
>
> >[...]
> >Anyways, I think there are two problems here:
> >
> >(1) dwarf2_evaluate_loc_desc is getting called with ctx->in_reg=true
> > and size=8. I need to provide an actual test executable to show
> > this happening. When this happens, dwarf2_evaluate_loc_desc just
> > reads *1* register. This is definitely wrong (if my description
> > of gdb's behavior is accurate).
> >
>
>
> clap! clap! clap!
>
> FYI, I have this problem too with HC11 and it is *critical* for me as
> this platform being a 16-bit register target, it uses multiple registers
> quite intensively (up to 4 for long long). It was working very very well
> before...
OK, so we need to do something about this before the next release.
It's a problem I hadn't anticipated. I have several ideas on how to
progress, particularly:
- Making a call to the LOC_COMPUTED functions return a LOC_REGISTER
so that the logic in read_var_value can go back to handling this case.
- Implement the get-next-register mechanism that Mark K. designed.
Hmm, for the former I'm not sure I know what I want it to look like
yet; but some logic definitely needs to be pushed higher than it is
(i.e. out of the evaluator).
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer