diff options
author | Daniel Jacobowitz <drow@false.org> | 2002-10-26 17:12:33 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2002-10-26 17:12:33 +0000 |
commit | 6ef1bcec6069b5bcb4481998f3dedc5dbcc31921 (patch) | |
tree | 8bfd3851498d0dfbcbff9ede0e65e02442df6730 /gdb/x86-64-tdep.c | |
parent | 5f6ea76b78320c21d11477709a8c733f47e46d8a (diff) | |
download | gdb-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.zip gdb-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.tar.gz gdb-6ef1bcec6069b5bcb4481998f3dedc5dbcc31921.tar.bz2 |
Merge drow-cplus-merge-20021025 to drow-cplus-branch.
Diffstat (limited to 'gdb/x86-64-tdep.c')
-rw-r--r-- | gdb/x86-64-tdep.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/gdb/x86-64-tdep.c b/gdb/x86-64-tdep.c index dbc5611..5f6dd3f 100644 --- a/gdb/x86-64-tdep.c +++ b/gdb/x86-64-tdep.c @@ -889,7 +889,7 @@ x86_64_skip_prologue (CORE_ADDR pc) if (!v_function || !v_function->ginfo.value.block || !v_sal.symtab) return pc; - endaddr = v_function->ginfo.value.block->endaddr; + endaddr = BLOCK_END (SYMBOL_BLOCK_VALUE (v_function)); for (i = 0; i < v_sal.symtab->linetable->nitems; i++) if (v_sal.symtab->linetable->item[i].pc >= pc @@ -904,7 +904,7 @@ x86_64_skip_prologue (CORE_ADDR pc) /* Sequence of bytes for breakpoint instruction. */ static unsigned char * -x86_64_breakpoint_from_pc (CORE_ADDR * pc, int *lenptr) +x86_64_breakpoint_from_pc (CORE_ADDR *pc, int *lenptr) { static unsigned char breakpoint[] = { 0xcc }; *lenptr = 1; @@ -1026,7 +1026,7 @@ x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* FRAME_CHAIN takes a frame's nominal address and produces the frame's chain-pointer. */ - set_gdbarch_frame_chain (gdbarch, cfi_frame_chain); + set_gdbarch_frame_chain (gdbarch, x86_64_linux_frame_chain); set_gdbarch_frameless_function_invocation (gdbarch, x86_64_frameless_function_invocation); @@ -1041,10 +1041,10 @@ x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_frame_init_saved_regs (gdbarch, x86_64_frame_init_saved_regs); /* Frame pc initialization is handled by unwind informations. */ - set_gdbarch_init_frame_pc (gdbarch, cfi_init_frame_pc); + set_gdbarch_init_frame_pc (gdbarch, x86_64_init_frame_pc); /* Initialization of unwind informations. */ - set_gdbarch_init_extra_frame_info (gdbarch, cfi_init_extra_frame_info); + set_gdbarch_init_extra_frame_info (gdbarch, x86_64_init_extra_frame_info); /* Getting saved registers is handled by unwind informations. */ set_gdbarch_get_saved_register (gdbarch, cfi_get_saved_register); @@ -1054,8 +1054,7 @@ x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Cons up virtual frame pointer for trace */ set_gdbarch_virtual_frame_pointer (gdbarch, cfi_virtual_frame_pointer); - - set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid); + set_gdbarch_frame_chain_valid (gdbarch, file_frame_chain_valid); set_gdbarch_use_generic_dummy_frames (gdbarch, 1); set_gdbarch_call_dummy_location (gdbarch, AT_ENTRY_POINT); @@ -1091,12 +1090,14 @@ x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Extract from an array REGBUF containing the (raw) register state a function return value of type TYPE, and copy that, in virtual format, into VALBUF. */ - set_gdbarch_deprecated_extract_return_value (gdbarch, x86_64_extract_return_value); + set_gdbarch_deprecated_extract_return_value (gdbarch, + x86_64_extract_return_value); /* Write into the appropriate registers a function return value stored in VALBUF of type TYPE, given in virtual format. */ - set_gdbarch_deprecated_store_return_value (gdbarch, x86_64_store_return_value); + set_gdbarch_deprecated_store_return_value (gdbarch, + x86_64_store_return_value); /* Offset from address of function to start of its code. */ @@ -1122,6 +1123,8 @@ x86_64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info); set_gdbarch_dwarf2_reg_to_regnum (gdbarch, x86_64_dwarf2_reg_to_regnum); + set_gdbarch_pc_in_sigtramp (gdbarch, x86_64_linux_in_sigtramp); + return gdbarch; } |