PR gdb/10757
* thread-db.c (attach_thread): New function.
(maybe_attach_thread): Return success/failure.
(find_new_threads_callback): Adjust.
(thread_db_find_new_threads): Loop until no new threads.
* remote.c (interrupt_sequence_control_c)
(interrupt_sequence_break, interrupt_sequence_break_g)
(interrupt_sequence_modes): New constants.
(interrupt_sequence_mode, interrupt_on_connect): New variable.
(show_interrupt_sequence): New function.
(set_remotebreak, show_remotebreak): New function.
(send_interrupt_sequence): New function.
(remote_start_remote): Call send_interrupt_sequence if
interrupt_on_connect is true.
(remote_stop_as): Call send_interrupt_sequence.
(_initialize_remote): Add interrupt-sequence and interrupt-on-connect,
modify remotebreak to call set_remotebreak and show_remotebreak.
* NEWS: Add entry for "set/show remote interrupt-sequence" and
"set/show remote interrupt-on-connect". Also mention that
"set/show remotebreak" is now deprecated.
gdb/doc/:
* gdb.texinfo (Remote Configuration): Add "set/show remote
interrupt-sequence" and "set/show remote interrupt-on-connect" command.
PR gdb/10757
* linux-thread-db.c (attach_thread): Return success/failure
indicator.
(thread_db_find_new_threads_silently): Retry until no new threads.
(struct callback_data): New.
(find_new_threads_callback): Count new threads, stop iteration
on error.
(find_new_threads_once): New function.
(thread_db_find_new_threads_2): Rename from
thread_db_find_new_threads_1 and adjust.
(thread_db_find_new_threads_1): New function.
Performance optimize large bp_location count.
* breakpoint.c (ALL_BP_LOCATIONS_SAFE): Remove.
(ALL_BP_LOCATIONS): New parameter BP_TMP. Use now bp_location and
bp_location_count.
(bp_location_chain): Remove variable.
(bp_location, bp_location_count)
(bp_location_placed_address_before_address_max)
(bp_location_shadow_len_after_address_max): New variables.
(moribund_locations, update_watchpoint): Update the bp_location
variable name.
(breakpoint_restore_shadows): Extend the comment. Move the variable
b to local blocks. Move the variables bp_addr, bp_size and bptoffset
to a local block. New variables bc_l, bc_r and bc. New binary search
for the left range boundary. New break on reaching the right range
boundary. Move shadow existence conditionals to ...
(bp_location_has_shadow): ... a new function.
(insert_breakpoint_locations): Replace the temp variable by bp_tmp.
Use now ALL_BP_LOCATIONS instead of ALL_BP_LOCATIONS_SAFE.
(remove_breakpoints, remove_hw_watchpoints, reattach_breakpoints)
(detach_breakpoints): New variable bp_tmp. Update the ALL_BP_LOCATIONS
calling convention.
(update_breakpoints_after_exec): New variable bplocp_tmp. Update the
ALL_BP_LOCATIONS calling convention.
(breakpoint_here_p, software_breakpoint_inserted_here_p)
(breakpoint_thread_match): New variable bptp_tmp. Drop the const
attribute of bpt. Update the ALL_BP_LOCATIONS calling convention.
(regular_breakpoint_inserted_here_p): Likewise. Update the bp_location
variable name.
(mark_breakpoints_out, breakpoint_init_inferior): New variable
bptp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bpstat_stop_status): New variables blp_tmp and update_locations. Drop
the const attribute of bl. Update the ALL_BP_LOCATIONS calling
convention. Protect HIT_COUNT increment by an ENABLE_STATE check.
Delay the update_global_location_list call using update_locations.
(set_default_breakpoint): Drop the check_duplicates name from comment.
(disable_breakpoints_in_shlibs, disable_breakpoints_in_unloaded_shlib):
New variable locp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bp_location_compare, bp_location_compare_for_qsort)
(bp_location_target_extensions_update): New functions.
(check_duplicates, check_duplicates_for): Remove, moving their code ...
(update_global_location_list): ... into this existing function. Remove
variables next, loc2, old_locations, ret and ix. New variables locp,
loc_first, old_location, old_locp and old_location_count. Stop using
global_next, create now the array bp_location, sort it by
bp_location_compare_for_qsort and call
bp_location_target_extensions_update. Change quadratic iteration by
loc2 into an in-sync scanning by locp and loc2p. Rename former loc
usage as old_loc.
(do_vec_free): Remove.
(breakpoint_program_space_exit): Update the ALL_BP_LOCATIONS calling
convention.
(remove_breakpoints_pid): New variable b_tmp. Update the
ALL_BP_LOCATIONS calling convention.
* breakpoint.h (struct bp_location <global_next>): Remove.
* record.c (top level): Don't include byteswap.h.
(netorder64): Use store_unsigned_integer instead of bswap_64.
(netorder32): Use store_unsigned_integer instead of bswap_32.
(netorder16): Use store_unsigned_integer instead of bswap_16.
Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
* record.c (RECORD_FILE_MAGIC): New constant.
(record_arch_list_cleanups): Renamed from record_message_cleanups.
(bfdcore_read): New function.
(netorder64): New function.
(netorder32): New function.
(netorder16): New function.
(record_restore): New function. Restore a saved record log.
(bfdcore_write): New function.
(cmd_record_restore): New function.
(cmd_record_save): New function. Save a record log to a file.
(_initialize_record): Set up commands for save and restore.
2009-10-17 Michael Snyder <msnyder@vmware.com>
* gcore.h: New file.
* gcore.c (create_gcore_bfd): New function.
(write_gcore_file): New function.
(call_target_sbrk): New function. Abstracted from gcore_command.
(gcore_command): Call call_target_sbrk.
Michael Snyder <msnyder@vmware.com>
* record.c (record_core_ops): New ops target vector.
(record_core_open_1): New function. Open core target.
(record_open_1): New function. Open normal process record.
(record_open): Call one of the above.
(record_close): Allow for both core and normal targets.
(record_core_resume): New function.
(record_core_kill): New function.
(record_core_fetch_registers): New function.
(record_core_prepare_to_store): New function.
(record_core_store_registers): New function.
(record_core_xfer_partial): New function.
(record_core_insert_breakpoint): New function.
(record_core_remove_breakpoint): New function.
(record_core_has_execution): New function.
(init_record_core_ops): New function.
(_initialize_record): Call init_record_core_ops, add_target.
* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
amd64_supply_fxsave for amd64. Fix the offset.
(i386_darwin_store_inferior_registers): Use amd64_collect_fxsave
for amd64.