* [pushed] Fix DWARF disassembly of DW_OP_const_type
@ 2020-04-03 15:16 Tom Tromey
0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2020-04-03 15:16 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
While debugging another issue, I noticed that disassembling a DWARF
expression using DW_OP_const_type did not work.
disassemble_dwarf_expression was not properly decoding this operation.
This patch fixes the problem. Tested by re-debugging gdb.
I didn't write a test case because that seemed like overkill for
what's essentially a maintainer's helper.
The expression evaluator does decode this properly, so no other change
was needed.
gdb/ChangeLog
2020-04-03 Tom Tromey <tromey@adacore.com>
* dwarf2/loc.c (disassemble_dwarf_expression) <DW_OP_const_type>:
Read constant block.
---
gdb/ChangeLog | 5 +++++
gdb/dwarf2/loc.c | 6 ++++++
2 files changed, 11 insertions(+)
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
index 6440335ccbd..fc54e16ffdd 100644
--- a/gdb/dwarf2/loc.c
+++ b/gdb/dwarf2/loc.c
@@ -4082,6 +4082,12 @@ disassemble_dwarf_expression (struct ui_file *stream,
type_print (type, "", stream, -1);
fprintf_filtered (stream, " [0x%s]>",
phex_nz (to_underlying (type_die), 0));
+
+ int n = *data++;
+ fprintf_filtered (stream, " %d byte block:", n);
+ for (int i = 0; i < n; ++i)
+ fprintf_filtered (stream, " %02x", data[i]);
+ data += n;
}
break;
--
2.21.1
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-04-03 15:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-03 15:16 [pushed] Fix DWARF disassembly of DW_OP_const_type Tom Tromey
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).