Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Paul Schlie <schlie@comcast.net>
To: Michael Snyder <msnyder@redhat.com>
Cc: <gdb-patches@sources.redhat.com>
Subject: Re: RFA: Recognize 'x' in response to 'p' packet
Date: Fri, 03 Dec 2004 23:44:00 -0000	[thread overview]
Message-ID: <BDD65E0C.8212%schlie@comcast.net> (raw)
In-Reply-To: <BDD6583A.8210%schlie@comcast.net>

> From: Paul Schlie <schlie@comcast.net>
>> From: Michael Snyder <msnyder@redhat.com>
>>> Paul Schlie wrote:
>>>> Jim Blandy
>>>> * remote.c (fetch_register_using_p): Recognize 'x's for the value
>>>>  of the register as indicating that the register's value is not
>>>>  available.
>>> 
>>> Out of curiosity, under what practical circumstances would the value of a
>>> register not be accessible? (and if not, shouldn't an error be returned, as
>>> opposed to an 'x' which is converted to a 0 anyway? Which I've noticed "g"
>>> packets also assume?)
>> 
>> Post-mortem debugging.  See tracepoint.c.  In a nutshell, you set up a
>> tracing experiment wherein a debugging agent on the target (like an
>> enhanced version of gdbserver) will collect data for you on the fly,
>> saving it to be retrieved later.  Data can include register values
>> and memory values.  During the post-mortem data examination stage,
>> the target agent enters a mode where, whenever GDB requests a register
>> or memory value, the agent supplies it from the collected cache rather
>> than from the 'live' target.  It lets GDB look at a saved machine state,
>> but you can only examine those registers that were saved.  Those that
>> weren't saved are not available, hence we need an idiom for reporting
>> this to gdb.  We can't use any legitimate integer value because a saved
>> register might actually have had that value.
> 
> Thanks, that makes a little more sense; but as xxxx values aren't represent-
> able within GDB, hence transformed upon receipt to 0; what's the point of
> transmit x's as opposed to 0's to begin with as an idiom until GDB is capable
> of differentiating valid from unknown values, which it's far from being
> capable of today, as it would imply that all logical values within GDB would
> need to be either maintained as text strings, or utilize structures containing
> it's value along with a tag indicating it's validity, and all expression
> corresponding evaluation routines would need to be updated.
> 
> (so although the proposal tries to solve a problem, it can't until GDB is
> capable of differentiation between valid and unknown values. If the objective
> is to determine for the purposes of information only which register value are
> valid independent of their value; therefore wonder if it may make sense to
> simply define a new server/target message function which requests the list of
> the validity of the register values, analogously it's request for their
> values, as today it's incapable of differentiation between valid and invalid
> ones if encoded into the value representation itself.)

Where upon a little more thought, if the objective is to enable gdb to
represent, track, and manipulate "unknown" values, it's likely most flexibly
done by representing all debug-values as text strings, expressed in whatever
radix required to precisely represent the value to the precision desired;
where then in addition to numerical digits, X's may represent
correspondingly unknown/indeterminate values, likely also useful when
interfacing with simulators analogously capable; but would require a fairly
large overhaul to accomplish, however until then if x's are treated as 0's
or whatever, might as well transmit the value desired to be assumed to begin
with, and not pretend anything would be accomplished otherwise, I would
think.)



  reply	other threads:[~2004-12-03 23:16 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-03  1:29 Paul Schlie
2004-12-03  4:32 ` Steven Johnson
2004-12-03  4:54   ` Paul Schlie
2004-12-03 13:57     ` Daniel Jacobowitz
2004-12-03 21:48       ` Michael Snyder
2004-12-03 21:45 ` Michael Snyder
2004-12-03 22:53   ` Paul Schlie
2004-12-03 23:44     ` Paul Schlie [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-12-03  0:22 Jim Blandy
2004-12-16 21:35 ` Jim Blandy
2004-12-17 22:20   ` Daniel Jacobowitz
2004-12-17 22:45     ` Jim Blandy
2004-12-18  1:24       ` Daniel Jacobowitz
2004-12-21 21:30         ` Jim Blandy
2004-12-23 16:43           ` Jim Blandy
2004-12-23 17:22             ` Daniel Jacobowitz
2004-12-28 13:15               ` Jim Blandy

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=BDD65E0C.8212%schlie@comcast.net \
    --to=schlie@comcast.net \
    --cc=gdb-patches@sources.redhat.com \
    --cc=msnyder@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