diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-03-22 21:06:34 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-03-22 21:06:34 +0000 |
commit | dd90784ccd58dfb449e9ccfd731b91db27e345d6 (patch) | |
tree | bd555cc67e2a42a9ae99304478c39f55f1367b22 /gdb/dwarf2expr.c | |
parent | dc80f6ae78dff1ae428d4d312eb47f5b6bb8cea6 (diff) | |
download | gdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.zip gdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.tar.gz gdb-dd90784ccd58dfb449e9ccfd731b91db27e345d6.tar.bz2 |
gdb/
* dwarf2expr.c (execute_stack_op): Handle DW_OP_GNU_entry_value. New
label abort_expression.
* dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Handle
DWARF_VALUE_OPTIMIZED_OUT.
gdb/testsuite/
* gdb.dwarf2/dw2-entry-value-main.c: New file.
* gdb.dwarf2/dw2-entry-value.S: New file.
* gdb.dwarf2/dw2-entry-value.exp: New file.
Diffstat (limited to 'gdb/dwarf2expr.c')
-rw-r--r-- | gdb/dwarf2expr.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c index 8d1810e..91fccf9 100644 --- a/gdb/dwarf2expr.c +++ b/gdb/dwarf2expr.c @@ -904,6 +904,13 @@ execute_stack_op (struct dwarf_expr_context *ctx, op_ptr += 4; ctx->dwarf_call (ctx, result); goto no_push; + + case DW_OP_GNU_entry_value: + /* This operation is not yet supported by GDB. */ + ctx->location = DWARF_VALUE_OPTIMIZED_OUT; + ctx->stack_len = 0; + ctx->num_pieces = 0; + goto abort_expression; default: error (_("Unhandled dwarf expression opcode 0x%x"), op); @@ -921,6 +928,7 @@ execute_stack_op (struct dwarf_expr_context *ctx, if (ctx->location == DWARF_VALUE_IMPLICIT_POINTER) add_piece (ctx, 8 * ctx->addr_size, 0); +abort_expression: ctx->recursion_depth--; gdb_assert (ctx->recursion_depth >= 0); #undef sign_ext |