public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: gdb@sources.redhat.com
Subject: Re: Use of lval_register?
Date: Thu, 05 Jun 2003 16:13:00 -0000	[thread overview]
Message-ID: <3EDF6C02.90807@redhat.com> (raw)
In-Reply-To: <20030605155851.GA28099@nevyn.them.org>

> On Thu, Jun 05, 2003 at 11:50:00AM -0400, Andrew Cagney wrote:
> 
>> 
> 
>> >lval_reg_frame_relative is a relatively recent addition, I believe,
>> >added to fix some particular problem with values stored in two places.
>> >Probably around the HP merge?  But that's just a guess.
> 
>> 
>> Ah.
>> 
> 
>> >I think that lval_reg_frame_relative, lval_memory, and lval_register
>> >should all be combined to an lval_location which takes the frame and a
>> >description of a location, personally.
> 
>> 
>> These will all need to live in harmony for a wile though.

Actually, these are separate but related problems:

- a location expression determines that a value is in REGNUM N in FRAME F.

- the CFI then determines that REGNUM N in frame F is actually in REGNUM 
M in frame G.

Printing a variable relies on both mechanisms, printing $r1 uses just 
the first.

>> The ``print $1''?  That output is correct.  GDB saves the value so that 
>> it can be refered back to later without having it change.

> Oh right.  So the value is coming from the cache.

It's comming from GDB's infinite value history pool (the word cache 
suggests that it is eventually flushed, which it isn't :-).

> 
> 
>> >I guess the question is, what _should_ happen if a variable moves? 
>> >e.g. we switch to a different item on its location list.
> 
>> 
>> From the users view point, the variable hasn't moved.  Hence the 
>> assignment:
>> 
>> 	$1.argc = N
>> 
>> should always work.  Should that assignment update the cached $1 value 
>> as well, hmm....
> 
> 
> I think it should update the cached copy.  I'm not so sure it should
> update the in-memory copy, if the var has moved.  That would require
> re-evaluating the expression that produced $1 wouldn't it?

Eventually.  For the moment I'm just worred about getting it to 
re-evaluate the registers the value is assumed to reside in.

Or should it only modify the history pool (modifying memory is weird 
here, but where to draw the line is also weird).

Andrew


  reply	other threads:[~2003-06-05 16:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-05 14:35 Andrew Cagney
2003-06-05 15:18 ` Daniel Jacobowitz
2003-06-05 15:50   ` Andrew Cagney
2003-06-05 15:59     ` Daniel Jacobowitz
2003-06-05 16:13       ` Andrew Cagney [this message]
2003-06-05 16:23         ` Daniel Jacobowitz
2003-06-05 17:48           ` Andrew Cagney
2003-06-05 18:30             ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3EDF6C02.90807@redhat.com \
    --to=ac131313@redhat.com \
    --cc=drow@mvista.com \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).