diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2001-07-06 19:17:05 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@dberlin.org> | 2001-07-06 19:17:05 +0000 |
commit | efae50153d4577bd05fc34b76c47bdca79982233 (patch) | |
tree | ebfdde719009a58b2f719cb06926eb6aab787aba /gdb/blockframe.c | |
parent | d30f071864b3938dd9d197547c65b33980a243f8 (diff) | |
download | gdb-cvs/dberlin-typesystem-branch.tar.gz |
Typesystem work initial import.dberlin-typesystem-branchcvs/dberlin-typesystem-branch
Note that this currently isn't building, i'm in the middle of converting make_function_type/lookup_function_type
Diffstat (limited to 'gdb/blockframe.c')
-rw-r--r-- | gdb/blockframe.c | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 34e1484f749..a15cd914373 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -1270,7 +1270,10 @@ generic_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp, saved by frames INTERIOR TO the current frame, we skip examining the current frame itself: otherwise, we would be getting the previous frame's registers which were saved by the current frame. */ - + if (frame) + { + struct symbol *sym = get_frame_function (frame); + } while (frame && ((frame = frame->next) != NULL)) { if (PC_IN_CALL_DUMMY (frame->pc, frame->frame, frame->frame)) @@ -1284,29 +1287,39 @@ generic_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp, REGISTER_RAW_SIZE (regnum)); return; } - - FRAME_INIT_SAVED_REGS (frame); - if (frame->saved_regs != NULL - && frame->saved_regs[regnum] != 0) +#if 0 + if (dwarf2_get_cfa_for_addr (frame->pc) != 0) { - if (lval) /* found it saved on the stack */ - *lval = lval_memory; - if (regnum == SP_REGNUM) - { - if (raw_buffer) /* SP register treated specially */ - store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), - frame->saved_regs[regnum]); - } - else - { - if (addrp) /* any other register */ - *addrp = frame->saved_regs[regnum]; - if (raw_buffer) - read_memory (frame->saved_regs[regnum], raw_buffer, - REGISTER_RAW_SIZE (regnum)); - } - return; + dwarf2_execute_cfa_program(frame); + } + else + { +#endif + FRAME_INIT_SAVED_REGS (frame); +#if 0 } +#endif + if (frame->saved_regs != NULL + && frame->saved_regs[regnum] != 0) + { + if (lval) /* found it saved on the stack */ + *lval = lval_memory; + if (regnum == SP_REGNUM) + { + if (raw_buffer) /* SP register treated specially */ + store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), + frame->saved_regs[regnum]); + } + else + { + if (addrp) /* any other register */ + *addrp = frame->saved_regs[regnum]; + if (raw_buffer) + read_memory (frame->saved_regs[regnum], raw_buffer, + REGISTER_RAW_SIZE (regnum)); + } + return; + } } /* If we get thru the loop to this point, it means the register was |