From: Pedro Alves <pedro@codesourcery.com>
To: gdb-patches@sourceware.org, Eli Zaretskii <eliz@gnu.org>
Subject: Re: [1/2] Inspect extra signal information
Date: Mon, 02 Feb 2009 16:51:00 -0000 [thread overview]
Message-ID: <200902021652.28152.pedro@codesourcery.com> (raw)
In-Reply-To: <u4p04co0y.fsf@gnu.org>
On Monday 12 January 2009 19:39:09, Eli Zaretskii wrote:
> > From: Pedro Alves <pedro@codesourcery.com>
> > Date: Mon, 12 Jan 2009 18:52:06 +0000
> >
> > * defs.h (enum lval_type): New value: lval_computed.
> > * value.h (struct lval_funcs): New type.
> > (allocate_computed_value, value_computed_funcs)
> > (value_computed_closure): New declarations.
> > * value.c (struct value): Add a structure to the location union
> > for computed lvalues, containing 'funcs' and 'closure' members.
> > (allocate_computed_value, value_computed_funcs)
> > (value_computed_closure): New functions.
>
> I think this introduces a general-purpose infrastructure that must be
> documented in gdbint.texinfo.
>
I'm taking a stab at this. I don't see struct value documented in
the internals manual though. What kind of detail do you require here?
I'm thinking of adding a "Values" section somewhere, don't know
where yet.
@section Values
@value{GDBN} uses @code{struct value}, or simply named a @dfn{value}, as an
internal abstraction for the representation of a variety of inferior
objects and @value{GDBN} convenience objects.
Values have an associated @code{struct type}, that describes a virtual
view of the data stored in or accessed through the value.
A value is in addition descriminated by its lvalue-ness, given its
@code{enum lval_type} enumeration:
@table @code
@item @code{not_lval}
This value is not an lval. It can't be assigned to.
@item @code{lval_memory}
This value represents an object in memory.
@item @code{lval_register}
This value represents an object that lives in a register.
@item @code{lval_internalvar}
Represents the value of an internal variable.
@item @code{lval_internalvar_component}
Represents part of a gdb internal variable. E.g., a structure field.
@item @code{lval_computed}
These are values with arbitrary functions to handle reads and writes,
and "copy operators" and "destructors". They allow creating
specialized value objects for specific purposes, all abstracted way
from the the core value support code. The creator of such a value
specifies specialized read, write, copy and release callbacks,
described by the @code{struct lval_funcs} struture declared in
@file{value.h} to the @code{allocate_computed_value} function. An
example use is the implementations of the @code{$_siginfo} convenience
variable in @file{infrun.c}.
@end table
@subsection Lazy values
...
--
Pedro Alves
next prev parent reply other threads:[~2009-02-02 16:51 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-12 18:47 [0/2] " Pedro Alves
2009-01-12 18:49 ` Pedro Alves
2009-01-12 18:52 ` [1/2] " Pedro Alves
2009-01-12 19:40 ` Eli Zaretskii
2009-02-02 16:51 ` Pedro Alves [this message]
2009-02-02 21:04 ` Eli Zaretskii
2009-02-05 1:14 ` Pedro Alves
2009-02-05 20:30 ` Eli Zaretskii
2009-02-06 23:31 ` Pedro Alves
2009-01-12 18:50 ` [2/2] " Pedro Alves
2009-01-12 19:39 ` Eli Zaretskii
2009-01-13 12:32 ` Pedro Alves
2009-01-13 18:55 ` Eli Zaretskii
2009-01-13 19:08 ` Pedro Alves
2009-01-13 19:15 ` Eli Zaretskii
2009-02-06 23:35 ` Pedro Alves
2009-02-09 6:23 ` Paul Pluzhnikov
2009-02-09 22:17 ` Pedro Alves
2009-04-06 19:00 ` Paul Pluzhnikov
2009-04-06 19:18 ` relying on testsuite results Thiago Jung Bauermann
2009-04-06 19:33 ` Paul Pluzhnikov
2009-04-06 19:57 ` Daniel Jacobowitz
2009-04-06 19:51 ` Tom Tromey
2009-04-06 20:22 ` Mark Kettenis
2009-04-07 14:57 ` [2/2] Inspect extra signal information Pedro Alves
2009-01-12 23:27 ` [0/2] " Mark Kettenis
2009-01-13 11:05 ` Pedro Alves
2009-01-13 18:42 ` Eli Zaretskii
2009-01-13 18:50 ` Pedro Alves
2009-01-13 19:19 ` Eli Zaretskii
2009-01-13 19:37 ` Pedro Alves
2009-01-13 19:47 ` Pedro Alves
2009-02-02 14:40 ` Pedro Alves
2009-02-02 20:49 ` Mark Kettenis
2009-02-03 15:02 ` Pedro Alves
2009-02-03 16:42 ` Ulrich Weigand
2009-02-03 18:06 ` Daniel Jacobowitz
2009-02-03 18:24 ` Pedro Alves
2009-02-03 19:04 ` Daniel Jacobowitz
2009-02-03 19:51 ` Pedro Alves
2009-02-03 23:18 ` Doug Evans
2009-02-03 23:50 ` Pedro Alves
2009-02-04 0:17 ` Doug Evans
2009-02-04 0:24 ` Daniel Jacobowitz
2009-02-04 0:49 ` Pedro Alves
2009-02-04 21:02 ` [3/2] Inspect extra signal information, handle amd64 bi-arch gdb Pedro Alves
2009-02-04 21:17 ` Daniel Jacobowitz
2009-02-06 23:37 ` Pedro Alves
2009-02-07 2:28 ` Paul Pluzhnikov
2009-02-07 14:56 ` Pedro Alves
2009-02-07 16:14 ` Paul Pluzhnikov
2009-02-04 22:07 ` Doug Evans
2009-02-03 18:23 ` [0/2] Inspect extra signal information Pedro Alves
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=200902021652.28152.pedro@codesourcery.com \
--to=pedro@codesourcery.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
/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