mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-01 20:12:01 +08:00
Add support for DW_OP_push_object_address.
gdb/ChangeLog: * dwarf2expr.h (struct dwarf_expr_context_funcs): Uncomment field "get_object_address". * dwarf2expr.c (execute_stack_op): Add handling for DW_OP_push_object_address. * dwarf2loc.h (dwarf2_evaluate_property): Add "address" field. * dwarf2loc.c (struct dwarf_expr_baton): Add field "obj_address". (dwarf_expr_push_dwarf_reg_entry_value): Set baton_local.obj_address. (dwarf_expr_get_obj_addr): New function. (dwarf_expr_ctx_funcs): Add get_object_address field. (dwarf2_evaluate_loc_desc_full): Set baton.obj_address. (dwarf2_locexpr_baton_eval): Add parameter "addr". Use it. (dwarf2_evaluate_property): Add parameter "address". Use it. (needs_get_obj_addr): New function. (needs_frame_ctx_funcs): Add get_object_address field. (dwarf2_compile_expr_to_ax): Add DW_OP_push_object_address handling. * gdbtypes.c (resolve_dynamic_range): Add "addr" field. Use it. (resolve_dynamic_array): Likewise.
This commit is contained in:
@ -84,12 +84,8 @@ struct dwarf_expr_context_funcs
|
||||
This can throw an exception if the index is out of range. */
|
||||
CORE_ADDR (*get_addr_index) (void *baton, unsigned int index);
|
||||
|
||||
#if 0
|
||||
/* Not yet implemented. */
|
||||
|
||||
/* Return the `object address' for DW_OP_push_object_address. */
|
||||
CORE_ADDR (*get_object_address) (void *baton);
|
||||
#endif
|
||||
};
|
||||
|
||||
/* The location of a value. */
|
||||
|
Reference in New Issue
Block a user