public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Keven Boell <keven.boell@linux.intel.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: Keven Boell <keven.boell@intel.com>,
	gdb-patches@sourceware.org,  sanimir.agovic@intel.com
Subject: Re: [PATCH 01/23] dwarf: add dwarf3 DW_OP_push_object_address opcode
Date: Tue, 17 Jun 2014 13:52:00 -0000	[thread overview]
Message-ID: <53A0470E.9050206@linux.intel.com> (raw)
In-Reply-To: <20140612154729.GE4730@adacore.com>

> I think we're talking past each other :-(, so I'll try to explain
> in more details what I have in mind.

Yes, I think so, sorry for that :(

> 
> I do not have any concrete Fortran example for you, and I am not
> saying that the implementation is wrong. I am asking a question
> of how things should work if the object you are trying to evaluate
> and resolve actually does not live in memory. If the object does
> not live in memory (eg: lives in register), are we stuck? The answer
> might be yes, or maybe that's something that can't happen, but I would
> like to explore that question to have a better understanding of what
> we can expect to achieve.

We tried to follow the DWARF standard to get this implemented. The DWARF
standard says that this scenario cannot happen in combination with the
DW_OP_push_object_address operation:

"The DW_OP_push_object_address operation pushes the _address_ of the 
object currently being evaluated as part of evaluation of a user presented
expression [...] This operator provides explicit functionality (especially 
for arrays involving descriptors) that is analogous to the implicit push 
of the base address of a structure prior to evaluation of a 
DW_AT_data_member_location to access a data member of a structure."
DWARF Debugging Information Format, Version 4.

So I think having only the address here seems to be ok.

> 
> Ideally, I have a feeling that what we should be taking isn't
> an address, but a struct value.  The struct value object carries
> much more information, and might allow us to deal with the case
> above. Another interesting, and perhaps more likely scenario, is
> the case where part of the object is optimized out. You can't
> expect a "contents and address" to represent accurately your object,
> so chances are GDB would get it wrong.

I agree with you that having a struct value instead of an address gives 
more flexibility, but for now I think this is not required according to 
the DWARF standard. If there is a real-world use-case where a full struct 
value object is required instead of having only the address, then this
functionality can be added after this patch series.

The patch series has been outdated, due to the introduction of two 
new functions by Tom (resolve_dynamic_struct and resolve_dynamic_union). 
Shall I therefore submit version 2?

Keven

  reply	other threads:[~2014-06-17 13:52 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04  5:54 [PATCH 00/23] Fortran dynamic array support Keven Boell
2014-06-04  5:54 ` [PATCH 23/23] test: stride support for dynamic arrays Keven Boell
2014-06-04  5:54 ` [PATCH 12/23] test: basic tests for dynamic array evaluations in Fortran Keven Boell
2014-06-04  5:54 ` [PATCH 07/23] vla: use value constructor instead of raw-buffer manipulation Keven Boell
2014-06-04  5:54 ` [PATCH 11/23] vla: add stride support to fortran arrays Keven Boell
2014-06-04  5:54 ` [PATCH 16/23] test: correct ptype of dynamic arrays in Fortran Keven Boell
2014-06-04  5:54 ` [PATCH 13/23] test: evaluate Fortran dynamic arrays of types Keven Boell
2014-06-16 20:57   ` Jan Kratochvil
2014-06-04  5:54 ` [PATCH 08/23] vla: get dynamic array corner cases to work Keven Boell
2014-06-04  5:54 ` [PATCH 05/23] vla: make field selection work with vla Keven Boell
2014-06-04  5:54 ` [PATCH 10/23] vla: get Fortran dynamic strings working Keven Boell
2014-06-04  5:54 ` [PATCH 04/23] vla: make dynamic fortran arrays functional Keven Boell
2014-06-16 21:02   ` Jan Kratochvil
2014-06-17 13:53     ` Keven Boell
2014-06-17 17:26       ` Jan Kratochvil
2014-06-04  5:54 ` [PATCH 20/23] test: dynamic string evaluations Keven Boell
2014-06-16 18:41   ` Jan Kratochvil
2014-06-17 13:52     ` Keven Boell
2014-06-04  5:54 ` [PATCH 03/23] vla: introduce allocated/associated flags Keven Boell
2014-06-04  5:54 ` [PATCH 06/23] vla: reconstruct value to compute bounds of target type Keven Boell
2014-06-04  5:54 ` [PATCH 15/23] test: dynamic arrays passed to subroutines Keven Boell
2014-06-04  5:54 ` [PATCH 14/23] test: evaluate dynamic arrays using Fortran primitives Keven Boell
2014-06-04  5:55 ` [PATCH 19/23] test: accessing dynamic array history values Keven Boell
2014-06-04  5:55 ` [PATCH 21/23] test: basic MI test for the dynamic array support Keven Boell
2014-06-04  5:55 ` [PATCH 02/23] dwarf: add DW_AT_data_location support Keven Boell
2014-06-10 12:10   ` Joel Brobecker
2014-06-11 12:29     ` Keven Boell
2014-06-14 13:21     ` Jan Kratochvil
2014-06-04  5:55 ` [PATCH 22/23] test: test sizeof for dynamic fortran arrays Keven Boell
2014-06-04  5:55 ` [PATCH 09/23] vla: changed string length semantic Keven Boell
2014-06-04  5:55 ` [PATCH 17/23] test: evaluating allocation/association status Keven Boell
2014-06-04  5:55 ` [PATCH 01/23] dwarf: add dwarf3 DW_OP_push_object_address opcode Keven Boell
2014-06-05 20:47   ` Tom Tromey
2014-06-11 12:30     ` Keven Boell
2014-06-10  9:54   ` Joel Brobecker
2014-06-11 12:26     ` Keven Boell
2014-06-11 13:08       ` Joel Brobecker
2014-06-12  7:57         ` Keven Boell
2014-06-12 15:47           ` Joel Brobecker
2014-06-17 13:52             ` Keven Boell [this message]
2014-06-21 15:21               ` Joel Brobecker
2014-07-07 15:29                 ` Joel Brobecker
2014-06-04  5:55 ` [PATCH 18/23] test: dynamic arrays passed to functions Keven Boell
2014-06-04  7:10 ` [PATCH 00/23] Fortran dynamic array support Eli Zaretskii
2014-06-04 12:50 ` Joel Brobecker
2014-06-14 18:57 ` Jan Kratochvil
2014-06-14 19:39   ` Jan Kratochvil
2014-06-17 13:54     ` Keven Boell
2014-06-17 17:20       ` Jan Kratochvil

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=53A0470E.9050206@linux.intel.com \
    --to=keven.boell@linux.intel.com \
    --cc=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=keven.boell@intel.com \
    --cc=sanimir.agovic@intel.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).