public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored
@ 2009-03-21 22:54 hubicka at gcc dot gnu dot org
2009-03-22 1:03 ` [Bug gdb/9977] " tromey at redhat dot com
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2009-03-21 22:54 UTC (permalink / raw)
To: gdb-prs
I am trying to add support to GCC to track SRAed structures and for structure
where some fields are optimized out I am producing following die:
.uleb128 0x15 # (DIE (0x347) DW_TAG_variable)
.ascii "a\0" # DW_AT_name
.byte 0x1 # DW_AT_decl_file (t.c)
.byte 0x11 # DW_AT_decl_line
.long 0x318 # DW_AT_type
.byte 0x8 # DW_AT_location
.byte 0x93 # DW_OP_piece
.uleb128 0x4
.byte 0x56 # DW_OP_reg6
.byte 0x93 # DW_OP_piece
.uleb128 0x4
.byte 0x50 # DW_OP_reg0
.byte 0x93 # DW_OP_piece
.uleb128 0x4
.byte 0x0 # end of children of DIE 0x2e7
I believe this is correct and identical to example in Example Location
Expression of dwarf3 standard.
But I get the following error:
(gdb) p a
Asked for position 0 of stack, stack only has 0 elements on it.
--
Summary: DW_OP_piece used to specify underined part of location
is ignored
Product: gdb
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: gdb
AssignedTo: unassigned at sourceware dot org
ReportedBy: hubicka at gcc dot gnu dot org
CC: gdb-prs at sourceware dot org
GCC host triplet: x86_64-pc-linux-gnu
http://sourceware.org/bugzilla/show_bug.cgi?id=9977
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug gdb/9977] DW_OP_piece used to specify underined part of location is ignored
2009-03-21 22:54 [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored hubicka at gcc dot gnu dot org
@ 2009-03-22 1:03 ` tromey at redhat dot com
2010-05-16 17:29 ` tromey at redhat dot com
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2009-03-22 1:03 UTC (permalink / raw)
To: gdb-prs
------- Additional Comments From tromey at redhat dot com 2009-03-22 01:03 -------
Confirmed; that's a bug all right.
AFAICT gdb doesn't have existing machinery to allow for undefined
pieces of a value. Perhaps one way to do this would be to add
a new field to struct value, which would be a bitmap tracking which
bits are known to be valid. Then, things like field lookups could
preserve this.
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |tromey at redhat dot com
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2009-03-22 01:03:03
date| |
http://sourceware.org/bugzilla/show_bug.cgi?id=9977
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug gdb/9977] DW_OP_piece used to specify underined part of location is ignored
2009-03-21 22:54 [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored hubicka at gcc dot gnu dot org
2009-03-22 1:03 ` [Bug gdb/9977] " tromey at redhat dot com
@ 2010-05-16 17:29 ` tromey at redhat dot com
2010-05-21 21:44 ` tromey at redhat dot com
2010-06-11 15:37 ` tromey at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-05-16 17:29 UTC (permalink / raw)
To: gdb-prs
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at sourceware dot|tromey at redhat dot com
|org |
Status|NEW |ASSIGNED
Last reconfirmed|2009-03-22 01:03:03 |2010-05-16 17:28:59
date| |
http://sourceware.org/bugzilla/show_bug.cgi?id=9977
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug gdb/9977] DW_OP_piece used to specify underined part of location is ignored
2009-03-21 22:54 [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored hubicka at gcc dot gnu dot org
2009-03-22 1:03 ` [Bug gdb/9977] " tromey at redhat dot com
2010-05-16 17:29 ` tromey at redhat dot com
@ 2010-05-21 21:44 ` tromey at redhat dot com
2010-06-11 15:37 ` tromey at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-05-21 21:44 UTC (permalink / raw)
To: gdb-prs
------- Additional Comments From tromey at redhat dot com 2010-05-21 21:44 -------
I checked in some initial support for this.
Right now you get a warning and the piece is filled with zeroes.
--
http://sourceware.org/bugzilla/show_bug.cgi?id=9977
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug gdb/9977] DW_OP_piece used to specify underined part of location is ignored
2009-03-21 22:54 [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored hubicka at gcc dot gnu dot org
` (2 preceding siblings ...)
2010-05-21 21:44 ` tromey at redhat dot com
@ 2010-06-11 15:37 ` tromey at redhat dot com
3 siblings, 0 replies; 5+ messages in thread
From: tromey at redhat dot com @ 2010-06-11 15:37 UTC (permalink / raw)
To: gdb-prs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2010-06-11 15:37 -------
Subject: Bug 9977
CVSROOT: /cvs/src
Module name: src
Changes by: tromey@sourceware.org 2010-06-11 15:36:10
Modified files:
gdb : ChangeLog ada-lang.h ada-valprint.c c-lang.h
c-valprint.c cp-valprint.c d-lang.h
d-valprint.c dwarf2loc.c f-lang.h f-valprint.c
infcmd.c jv-lang.h jv-valprint.c language.c
language.h m2-lang.h m2-valprint.c mt-tdep.c
p-lang.h p-valprint.c printcmd.c scm-lang.h
scm-valprint.c sh64-tdep.c valops.c valprint.c
valprint.h value.c value.h
gdb/mi : mi-main.c
gdb/python : py-prettyprint.c python.h
gdb/testsuite : ChangeLog
gdb/testsuite/gdb.dwarf2: pieces.exp
Log message:
gdb
PR gdb/9977, PR exp/11636:
* value.h (value_offset): Update.
(struct lval_funcs) <check_validity>: New field.
<copy_closure>: Make argument const.
(value_computed_closure): Update.
(value_contents_for_printing): Declare.
(value_bits_valid): Likewise.
(val_print): Likewise.
(set_value_component_location): Update.
(value_entirely_optimized_out): Declare.
* value.c (value_offset): Argument now const.
(require_not_optimized_out): New function.
(value_contents_for_printing): New function.
(value_contents_all): Call require_not_optimized_out.
(value_contents): Likewise.
(value_bits_valid): New function.
(value_computed_closure): Argument now const.
(set_value_component_location): Make 'whole' argument const.
(value_entirely_optimized_out): New function.
(value_bitsize): Argument now 'const'.
(value_bitpos): Likewise.
(value_type): Likewise.
* valprint.h (val_print_array_elements): Update.
* valprint.c (val_print): Add 'val' argument. Use
valprint_check_validity.
(valprint_check_validity): New function.
(value_check_printable): Use value_entirely_optimized_out.
(common_val_print): Update.
(value_print): Likewise.
(val_print_array_elements): Add 'val' argument.
* valops.c (value_fetch_lazy): Use value_contents_for_printing,
value_bits_valid. Reinit frame cache for lval_computed.
* sh64-tdep.c (sh64_do_register): Update.
* scm-valprint.c (scm_val_print): Add 'val' argument.
* scm-lang.h (scm_val_print): Update.
* python/python.h (apply_val_pretty_printer): Update.
* python/py-prettyprint.c (apply_val_pretty_printer): Add 'val'
argument. Call set_value_component_location.
* printcmd.c (print_scalar_formatted): Update.
* p-valprint.c (pascal_val_print): Add 'val' argument.
(pascal_object_print_value_fields): Likewise.
(pascal_object_print_value): Likewise.
(pascal_object_print_static_field): Update.
* p-lang.h (pascal_val_print): Update.
(pascal_object_print_value_fields): Update.
* mt-tdep.c (mt_registers_info): Update.
* mi/mi-main.c (get_register): Update.
(mi_cmd_data_evaluate_expression): Use common_val_print.
* m2-valprint.c (m2_print_array_contents): Add 'val' argument.
(m2_print_unbounded_array): Likewise.
(m2_val_print): Likewise.
* m2-lang.h (m2_val_print): Update.
* language.h (struct language_defn) <la_val_print>: Add 'val'
argument.
(LA_VAL_PRINT): Likewise.
* language.c (unk_lang_val_print): Add 'val' argument.
* jv-valprint.c (java_print_value_fields): Add 'val' argument.
(java_val_print): Likewise.
* jv-lang.h (java_val_print): Add 'val' argument.
* infcmd.c (default_print_registers_info): Update.
* f-valprint.c (f77_print_array_1): Add 'val' argument.
(f77_print_array): Likewise.
(f_val_print): Likewise.
* f-lang.h (f_val_print): Add 'val' argument.
* dwarf2loc.c (read_pieced_value): Use value_bitsize and
value_bitpos.
<DWARF_VALUE_OPTIMIZED_OUT>: Don't print warning. Call
set_value_optimized_out.
(write_pieced_value): Use value_bitsize and value_bitpos.
<default>: Don't exit loop.
(check_pieced_value_validity): New function.
(pieced_value_funcs): Reference check_pieced_value_validity,
check_pieced_value_invalid.
(copy_pieced_value_closure): Update.
(check_pieced_value_bits): New function.
(check_pieced_value_invalid): New function.
* d-valprint.c (dynamic_array_type): Add 'val' argument.
(d_val_print): Likewise.
* d-lang.h (d_val_print): Update.
* cp-valprint.c (cp_print_value_fields): Add 'val' argument.
(cp_print_value_fields_rtti): Likewise.
(cp_print_value): Likewise.
(cp_print_static_field): Update.
* c-valprint.c (c_val_print): Add 'val' argument.
(c_value_print): Update.
* c-lang.h (c_val_print): Update.
(cp_print_value_fields): Likewise.
(cp_print_value_fields_rtti): Likewise.
* ada-valprint.c (struct ada_val_print_args): Remove.
(val_print_packed_array_elements): Add 'val' argument.
(ada_val_print): Likewise. Rewrite.
(ada_val_print_stub): Remove.
(ada_val_print_array): Add 'val' argument.
(ada_val_print_1): Likewise.
(print_variant_part): Likewise.
(ada_value_print): Update.
(print_record): Add 'val' argument.
(print_field_values): Likewise.
* ada-lang.h (ada_val_print): Update.
gdb/testsuite
PR gdb/9977, PR exp/11636::
* gdb.dwarf2/pieces.exp (pieces_test_f3): Remove kfail.
(pieces_test_f6): Update expected output.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.11895&r2=1.11896
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ada-lang.h.diff?cvsroot=src&r1=1.55&r2=1.56
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ada-valprint.c.diff?cvsroot=src&r1=1.65&r2=1.66
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/c-lang.h.diff?cvsroot=src&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/c-valprint.c.diff?cvsroot=src&r1=1.68&r2=1.69
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/cp-valprint.c.diff?cvsroot=src&r1=1.68&r2=1.69
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/d-lang.h.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/d-valprint.c.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2loc.c.diff?cvsroot=src&r1=1.89&r2=1.90
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/f-lang.h.diff?cvsroot=src&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/f-valprint.c.diff?cvsroot=src&r1=1.57&r2=1.58
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infcmd.c.diff?cvsroot=src&r1=1.267&r2=1.268
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/jv-lang.h.diff?cvsroot=src&r1=1.15&r2=1.16
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/jv-valprint.c.diff?cvsroot=src&r1=1.44&r2=1.45
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/language.c.diff?cvsroot=src&r1=1.96&r2=1.97
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/language.h.diff?cvsroot=src&r1=1.66&r2=1.67
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/m2-lang.h.diff?cvsroot=src&r1=1.16&r2=1.17
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/m2-valprint.c.diff?cvsroot=src&r1=1.28&r2=1.29
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/mt-tdep.c.diff?cvsroot=src&r1=1.32&r2=1.33
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/p-lang.h.diff?cvsroot=src&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/p-valprint.c.diff?cvsroot=src&r1=1.74&r2=1.75
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/printcmd.c.diff?cvsroot=src&r1=1.179&r2=1.180
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/scm-lang.h.diff?cvsroot=src&r1=1.20&r2=1.21
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/scm-valprint.c.diff?cvsroot=src&r1=1.31&r2=1.32
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/sh64-tdep.c.diff?cvsroot=src&r1=1.73&r2=1.74
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/valops.c.diff?cvsroot=src&r1=1.245&r2=1.246
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/valprint.c.diff?cvsroot=src&r1=1.94&r2=1.95
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/valprint.h.diff?cvsroot=src&r1=1.26&r2=1.27
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/value.c.diff?cvsroot=src&r1=1.103&r2=1.104
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/value.h.diff?cvsroot=src&r1=1.157&r2=1.158
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/mi/mi-main.c.diff?cvsroot=src&r1=1.177&r2=1.178
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/py-prettyprint.c.diff?cvsroot=src&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/python/python.h.diff?cvsroot=src&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.2325&r2=1.2326
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.dwarf2/pieces.exp.diff?cvsroot=src&r1=1.5&r2=1.6
------- Additional Comments From tromey at redhat dot com 2010-06-11 15:37 -------
I checked in the fix.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|6.8 |7.2
http://sourceware.org/bugzilla/show_bug.cgi?id=9977
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-06-11 15:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-21 22:54 [Bug gdb/9977] New: DW_OP_piece used to specify underined part of location is ignored hubicka at gcc dot gnu dot org
2009-03-22 1:03 ` [Bug gdb/9977] " tromey at redhat dot com
2010-05-16 17:29 ` tromey at redhat dot com
2010-05-21 21:44 ` tromey at redhat dot com
2010-06-11 15:37 ` tromey at redhat dot com
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).