This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] better dwarf checking for values on the stack


On Fri, Sep 11, 2009 at 2:19 PM, Doug Evans<dje@google.com> wrote:
>>Tom Tromey wrote:
>>[...]
>> It seems to me that the inferior-stack-ness of a value must be an
>> attribute carried alongside the value on the dwarf stack.
>>[...]
>
> Yeah, I was wondering about this. ?[It's what prompted my question on IRC.]

How about this?

2009-09-11  Doug Evans  <dje@google.com>

        * dwarf2expr.h (dwarf_value_location): Add more comments describing
        enum values.
        (struct dwarf_stack_value): New struct.
        (struct dwarf_expr_context): Change type of `stack' from CORE_ADDR*
        to structd dwarf_stack_value*.
        (struct dwarf_expr_piece): Move `v.value' into its own struct, v.expr,
        all uses updated.
        Add v.expr.in_stack_memory.
        (dwarf_expr_push): Update declaration.
        (dwarf_expr_fetch_in_stack_memory): Declare.
        * dwarf2expr.c (dwarf_expr_grow_stack): Update calculation of
        size of stack value.
        (dwarf_expr_push): New arg in_stack_memory, all callers updated.
        (dwarf_expr_fetch_in_stack_memory): New function.
        (add_piece): Set in_stack_memory for non-literal values.
        (execute_stack_op, case DW_OP_fbreg): Call dwarf_expr_push ourselves,
        mark value as in stack memory.
        (execute_stack_op, case DW_OP_call_frame_cfa): Ditto.
        (execute_stack_op, cases DW_OP_swap, DW_OP_rot): Update type of
        dwarf stack value.
        * dwarf2loc.c (read_pieced_value): Call read_stack for values known
        to be on the program's stack.
        (dwarf2_evaluate_loc_desc, case DWARF_VALUE_MEMORY): Call
        set_value_stack only for objects known to be in stack memory.
        * dwarf2-frame.c (execute_stack_op): New arg initial_in_stack_memory,
        all callers updated.

Attachment: gdb-090911-dwarf-stack-value-2.patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]