This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
FYI: final fix for PR 8399
- From: Tom Tromey <tromey at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 14 Sep 2010 13:39:39 -0600
- Subject: FYI: final fix for PR 8399
I am checking this in.
While looking into PR 11803, I ran across a kfail for PR 8399. This bug
was mostly fixed by earlier changes, but one final odd failure remained:
when we ran across an unrecognized frame base expression, we would throw
an error instead of falling back to disassembly.
Built and regtested on x86-64 (compile farm).
Tom
2010-09-14 Tom Tromey <tromey@redhat.com>
PR symtab/8399:
* dwarf2loc.c (locexpr_describe_location_piece): Don't call error
for unrecognized frame base expression.
2010-09-14 Tom Tromey <tromey@redhat.com>
PR symtab/8399:
* gdb.threads/tls.exp: Remove kfail. Update expected output.
Index: dwarf2loc.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2loc.c,v
retrieving revision 1.97
diff -u -r1.97 dwarf2loc.c
--- dwarf2loc.c 12 Aug 2010 19:55:38 -0000 1.97
+++ dwarf2loc.c 14 Sep 2010 19:37:26 -0000
@@ -1940,7 +1940,7 @@
struct symbol *framefunc;
int frame_reg = 0;
LONGEST frame_offset;
- const gdb_byte *base_data, *new_data;
+ const gdb_byte *base_data, *new_data, *save_data = data;
size_t base_size;
LONGEST base_offset = 0;
@@ -1984,10 +1984,7 @@
{
/* We don't know what to do with the frame base expression,
so we can't trace this variable; give up. */
- error (_("Cannot describe location of symbol \"%s\"; "
- "DWARF 2 encoding not handled, "
- "first opcode in base data is 0x%x."),
- SYMBOL_PRINT_NAME (symbol), base_data[0]);
+ return save_data;
}
regno = gdbarch_dwarf2_reg_to_regnum (gdbarch, frame_reg);
Index: testsuite/gdb.threads/tls.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/tls.exp,v
retrieving revision 1.13
diff -u -r1.13 tls.exp
--- testsuite/gdb.threads/tls.exp 14 Sep 2010 19:08:30 -0000 1.13
+++ testsuite/gdb.threads/tls.exp 14 Sep 2010 19:37:28 -0000
@@ -284,8 +284,8 @@
gdb_test "info address a_global" \
".*a_global.*static storage at address.*" "info address a_global"
-setup_kfail "gdb/1294" "*-*-*"
-gdb_test "info address me" ".*me.*is a variable at offset.*" "info address me"
+gdb_test "info address me" ".*me.*is a complex DWARF expression:.*" \
+ "info address me"
# Test LOC_UNRESOLVED references resolving for `extern' TLS variables.