(displaced_step_clear_cleanup): Move to before displaced_step_prepare.
(displaced_step_prepare): Use displaced_step_clear_cleanup instead
of cleanup_displaced_step_closure.
(handle_inferior_event, keep_going): Use thread architecture instead
of current_gdbarch.
* infrun.c (handle_inferior_event): Use current frame architecture
or thread architecture instead of current_gdbarch. Pass to
handle_step_into_function and handle_step_into_function_backward.
(handle_step_into_function): Add GDBARCH parameter. Use it instead
of current_gdbarch.
(handle_step_into_function_backward): Likewise.
(insert_step_resume_breakpoint_at_frame): Use frame architecture
instead of current_gdbarch.
(insert_step_resume_breakpoint_at_caller): Likewise.
testsuite/ChangeLog:
* gdb.base/annota1.exp: Allow multiple occurrences of the
frames-invalid annotation.
* gdb.cp/annota2.exp: Likewise.
* avr-tdep.c (struct gdbarch_tdep): Replace the unused field with
call_length field.
(avr_register_name): Add const to register_names.
(avr_scan_arg_moves): Move inside avr_scan_prologue.
(avr_scan_prologue): Add pc_end argument.
Only read prologue bytes that can be read.
Limit the scan to the known prologue length.
Makes pattern variables static and const.
Fix indentation.
(avr_skip_prologue): Pass func_end argument to avr_scan_prologue.
Fix indentation.
(avr_breakpoint_from_pc): Constify avr_break_insn.
(avr_extract_return_value): Fix function comment.
(avr_frame_unwind_cache): Fix GNU style violations.
Pass current_pc argument to avr_scan_prologue to stop prologue
analysis to the current pc. This fixes the bug with the 'next'
command.
Correctly set the SP register of the previous frame (use call_length).
(avr_frame_prev_register): Fix indentation.
Correctly read PC from the stack on avr6 architectures.
(avr_push_dummy_call): Fix indentation.
(avr_gdbarch_init): Set call_length according to the architecture.
* infcall.c (show_unwind_on_terminating_exception_p): New
function.
(call_function_by_hand): Create breakpoint and clean-up call for
std::terminate.breakpoint. Add unwind_on_terminating_exception_p
gate. Pop frame on breakpoint hit.
(_initialize_infcall): Add add_setshow_boolean_cmd for
unwind-on-terminating-exception.
testsuite/
2009-06-15 Phil Muldoon <pmuldoon@redhat.com>
* gdb.cp/gdb2495.cc: New file.
* gdb.cp/gdb2495.exp: New file.
doc/
2009-06-15 Phil Muldoon <pmuldoon@redhat.com>
* doc/gdb.texinfo (Calling): Document
set-unwind-on-terminating-exception usage.
(i386nto_sigcontext_addr): Change the way context address is calculated.
(i386nto_init_abi): Remove usage of deprecated sc_reg_offset and
sc_sp_offset and set sc_reg_offset and sc_num_regs.
* i386-nto-tdep.c (i386nto_regset_id): Add case for SSE register set.
(i386nto_register_area): Correctly calculate offsets and sizes for
all supported registers.
* infrun.c (sched_multi): New global.
(resume): If sched_multi is set, resume only threads of the
current inferior.
(prepare_to_proceed): Don't switch over to wait_ptid if we're
resuming a different inferior, and sched_multi is off.
(show_schedule_multiple): New.
(_initialize_infrun): Register new "set schedule-multiple" command.
* inferior.h (sched_multi): Declare.
* NEWS: Mention new "schedule-multiple" setting.
gdb/doc/
* gdb.texinfo (All-Stop): Document new 'set schedule-multiple'
command.
(update_current_target): Don't inherit to_sections or
to_sections_end.
(target_get_section_table): New.
(target_section_by_addr): Fetch the section table from the passed
in target.
(memory_xfer_partial): Handle unmapped overlay sections before
anything else. Get the overlay mapped address here. Adjust to
use section_table_xfer_memory_partial.
(get_target_memory): Request a TARGET_OBJECT_RAW_MEMORY object
instead of TARGET_OBJECT_MEMORY.
(target_resize_to_sections): Delete.
(remove_target_sections): Adjust to remove target sections from
`current_target_sections', and use resize_section_table.
* target.h (struct target_ops) <to_sections, to_sections_end>:
Remove fields.
<to_get_section_table>: New method.
(xfer_memory, print_section_info): Delete declarations.
(struct target_section_table): New type.
(target_get_section_table): Declare.
(target_resize_to_sections): Delete declaration.
(remove_target_sections): Delete declaration.
* bfd-target.c (target_bfd_xfer_partial): Get the section table
from to_data.
(target_bfd_get_section_table): New.
(target_bfd_xclose): Adjust.
(target_bfd_reopen): Store the section table in the to_data field.
* corelow.c (core_data): New.
(core_close): Adjust to release core_data and its sections.
(core_open): Allocate core_data, and build its target sections
table.
(deprecated_core_resize_section_table): New.
(core_files_info): Pass core_data to print_section_info.
(core_xfer_partial): Adjust to use
section_table_xfer_memory_partial for TARGET_OBJECT_MEMORY xfers.
(init_core_ops): Do not install a deprecated_xfer_memory callback
anymore.
* solib.c (update_solib_list): Add the shared library sections
to the current target sections table.
* exec.c (current_target_sections_1): New global.
(current_target_sections): New global.
(exec_close_1): New function, refactored from exec_close. Remove
the exec_bfd's sections from the current target sections table.
Adjust to not use to_sections.
(exec_close): Remove all target sections. Call exec_close_1.
(exec_file_clear): Use exec_close_1 instead of unpushing the
target.
(exec_file_attach): Likewise. Adjust to not use to_sections. Add
exec_bfd's sections to the current target sections table. Don't
push the exec_ops target here.
(resize_section_table): New.
(add_target_sections): New.
(remove_target_sections): Moved here.
(section_table_xfer_memory): Adjust to implement the xfer_partial
interface, and rename to...
(section_table_xfer_memory_partial): ... this, replacing the
current function of that same name.
(exec_get_section_table): New.
(exec_xfer_partial): New.
(xfer_memory): Delete.
(print_section_info): Replace the target_ops parameter by a
target_section_table parameter.
(exec_files_info, set_section_command, exec_set_section_address):
Adjust to use the current sections table.
(init_exec_ops): Do not register a deprecated_xfer_memory
callback. Register to_xfer_partial and to_get_section_table
callbacks.
* infrun.c (handle_inferior_event): Update comments around
solib_add.
* rs6000-nat.c (xcoff_relocate_core): Adjust to use
deprecated_core_resize_section_table.
* exec.h (resize_section_table): Declare.
(section_table_xfer_memory_partial): Add const char * argument.
(remove_target_sections): Declare here.
(add_target_sections): Declare.
(print_section_info): Declare here.
* gdbcore.h (deprecated_core_resize_section_table): Declare.
(scm_lookup_name): Add GDBARCH parameter. Use it instead of
objfile architecture. Use per-architecture builtin_scm_type instead
of builtin_type_scm.
(evaluate_exp): Pass expression architecture to scm_lookup_name.
(scm_get_field): Add SIZE parameter. Use it instead of
TYPE_LENGTH (builtin_type_scm).
(build_scm_types): New function.
(scm_type_data): New variable.
(builtin_scm_type): New function.
(_initialize_scheme_language): Do not initialize builtin_type_scm.
Register build_scm_types as post-init function for scm_type_data.
* scm-exp.c (scm_lreadr): Use per-architecture builtin_scm_type
instead of builtin_type_scm.
* scm-lang.h (SCM_CAR, SCM_CDR): Pass SCM_SIZE to scm_get_field.
(scm_get_field): Add SIZE paramter.
(scm_scmval_print): Remove prototype.
(builtin_type_scm): Remove.
(struct builtin_scm_type): Add structure definition.
(builtin_scm_type): Add prototype.
* scm-valprint.c (scm_inferior_print): Add TYPE parameter. Use it
instead of builtin_core_addr type; do not use objfile architecture.
(scm_scmlist_print): Add TYPE parameter. Use it to define SCM_SIZE.
Pass type to scm_scmval_print.
(scm_ipruk): Add TYPE parameter. Use it to define SCM_SIZE.
(scm_scmval_print): Make static. Add TYPE parameter. Use it to
define SCM_SIZE. Pass type to scm_ipruk and scm_scmlist_print.
(scm_val_print): Pass type to scm_inferior_print and scm_scmval_print.
* dfp.c (promote_decimal): Remove.
(decimal_binop): Convert LEN_RESULT to input parameter.
Remove call to decimal_binop.
(decimal_compare): Remove call to decimal_binop.
* valarith.c (value_binop): Pass desired result type length
to decimal_binop.
If scheduler-locking is enabled, we're not going to be singlestepping
any other previously stopped thread.
* gdb.threads/hand-call-in-threads.exp: New file.
* gdb.threads/hand-call-in-threads.c: New file.