diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-06-17 19:53:52 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2012-06-17 19:53:52 +0000 |
commit | 1788b2d3beb8f1a59976a2ffef984d8e52188203 (patch) | |
tree | 11c20395e8b9717f712f6f1394917636cd651925 /gdb/dwarf2loc.c | |
parent | 24c5c679cb74ed4035f8c1dd4249654602fd1f10 (diff) | |
download | gdb-1788b2d3beb8f1a59976a2ffef984d8e52188203.zip gdb-1788b2d3beb8f1a59976a2ffef984d8e52188203.tar.gz gdb-1788b2d3beb8f1a59976a2ffef984d8e52188203.tar.bz2 |
gdb/
* dwarf2expr.c (execute_stack_op): Support DW_OP_GNU_parameter_ref.
* dwarf2loc.c (call_site_parameter_matches): Support
CALL_SITE_PARAMETER_PARAM_OFFSET.
(needs_dwarf_reg_entry_value): Push stub value.
* dwarf2read.c (read_call_site_scope): New variable origin. Support
CALL_SITE_PARAMETER_PARAM_OFFSET and its DW_AT_abstract_origin.
* gdbtypes.h (enum call_site_parameter_kind): New item
CALL_SITE_PARAMETER_PARAM_OFFSET.
(struct call_site.parameter.u): New field param_offset.
gdb/testsuite/
* gdb.arch/amd64-entry-value-param.S: New file.
* gdb.arch/amd64-entry-value-param.c: New file.
* gdb.arch/amd64-entry-value-param.exp: New file.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r-- | gdb/dwarf2loc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index 5f63bd7..54dc5ad 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -962,6 +962,8 @@ call_site_parameter_matches (struct call_site_parameter *parameter, return kind_u.dwarf_reg == parameter->u.dwarf_reg; case CALL_SITE_PARAMETER_FB_OFFSET: return kind_u.fb_offset == parameter->u.fb_offset; + case CALL_SITE_PARAMETER_PARAM_OFFSET: + return kind_u.param_offset.cu_off == parameter->u.param_offset.cu_off; } return 0; } @@ -2397,6 +2399,9 @@ needs_dwarf_reg_entry_value (struct dwarf_expr_context *ctx, struct needs_frame_baton *nf_baton = ctx->baton; nf_baton->needs_frame = 1; + + /* The expression may require some stub values on DWARF stack. */ + dwarf_expr_push_address (ctx, 0, 0); } /* DW_OP_GNU_addr_index doesn't require a frame. */ |