diff options
Diffstat (limited to 'gdb/gdbserver/ChangeLog')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 6d77af6..665556c 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,4 +1,260 @@ 2010-06-01 Pedro Alves <pedro@codesourcery.com> + Stan Shebs <stan@codesourcery.com> + + * Makefile.in (IPA_DEPFILES, extra_libraries): New. + (all): Depend on $(extra_libraries). + (install-only): Install the IPA. + (IPA_OBJS, IPA_LIB): New. + (clean): Remove the IPA lib. + (IPAGENT_CFLAGS): New. + (tracepoint-ipa.o, utils-ipa.o, remote-utils-ipa.o) + (regcache-ipa.o, i386-linux-ipa.o, linux-i386-ipa.o) + (linux-amd64-ipa.o, amd64-linux-ipa.o): New rules. + * linux-amd64-ipa.c, linux-i386-ipa.c: New files. + * configure.ac: Check for atomic builtins support in the compiler. + (IPA_DEPFILES, extra_libraries): Define. + * configure.srv (ipa_obj): Add description. + (ipa_i386_linux_regobj, ipa_amd64_linux_regobj): Define. + (i[34567]86-*-linux*): Set ipa_obj. + (x86_64-*-linux*): Set ipa_obj. + * linux-low.c (stabilizing_threads): New. + (supports_fast_tracepoints): New. + (linux_detach): Stabilize threads before detaching. + (handle_tracepoints): Handle internal tracing breakpoints. Assert + the lwp is either not stabilizing, or is moving out of a jump pad. + (linux_fast_tracepoint_collecting): New. + (maybe_move_out_of_jump_pad): New. + (enqueue_one_deferred_signal): New. + (dequeue_one_deferred_signal): New. + (linux_wait_for_event_1): If moving out of a jump pad, defer + pending signals to later. + (linux_stabilize_threads): New. + (linux_wait_1): Check if threads need moving out of jump pads, and + do it if so. + (stuck_in_jump_pad_callback): New. + (move_out_of_jump_pad_callback): New. + (lwp_running): New. + (linux_resume_one_lwp): Handle moving out of jump pads. + (linux_set_resume_request): Dequeue deferred signals. + (need_step_over_p): Also step over fast tracepoint jumps. + (start_step_over): Also uninsert fast tracepoint jumps. + (finish_step_over): Also reinsert fast tracepoint jumps. + (linux_install_fast_tracepoint_jump): New. + (linux_target_ops): Install linux_stabilize_threads and + linux_install_fast_tracepoint_jump_pad. + * linux-low.h (linux_target_ops) <get_thread_area, + install_fast_tracepoint_jump_pad>: New fields. + (struct lwp_info) <collecting_fast_tracepoint, + pending_signals_to_report, exit_jump_pad_bkpt>: New fields. + (linux_get_thread_area): Declare. + * linux-x86-low.c (jump_insn): New. + (x86_get_thread_area): New. + (append_insns): New. + (push_opcode): New. + (amd64_install_fast_tracepoint_jump_pad): New. + (i386_install_fast_tracepoint_jump_pad): New. + (x86_install_fast_tracepoint_jump_pad): New. + (the_low_target): Install x86_get_thread_area and + x86_install_fast_tracepoint_jump_pad. + * mem-break.c (set_raw_breakpoint_at): Use read_inferior_memory. + (struct fast_tracepoint_jump): New. + (fast_tracepoint_jump_insn): New. + (fast_tracepoint_jump_shadow): New. + (find_fast_tracepoint_jump_at): New. + (fast_tracepoint_jump_here): New. + (delete_fast_tracepoint_jump): New. + (set_fast_tracepoint_jump): New. + (uninsert_fast_tracepoint_jumps_at): New. + (reinsert_fast_tracepoint_jumps_at): New. + (set_breakpoint_at): Use write_inferior_memory. + (uninsert_raw_breakpoint): Use write_inferior_memory. + (check_mem_read): Mask out fast tracepoint jumps. + (check_mem_write): Mask out fast tracepoint jumps. + * mem-break.h (struct fast_tracepoint_jump): Forward declare. + (set_fast_tracepoint_jump): Declare. + (delete_fast_tracepoint_jump) + (fast_tracepoint_jump_here, uninsert_fast_tracepoint_jumps_at) + (reinsert_fast_tracepoint_jumps_at): Declare. + * regcache.c: Don't compile many functions when building the + in-process agent library. + (init_register_cache) [IN_PROCESS_AGENT]: Don't allow allocating + the register buffer in the heap. + (free_register_cache): If the register buffer isn't owned by the + regcache, don't free it. + (set_register_cache) [IN_PROCESS_AGENT]: Don't re-alocate + pre-existing register caches. + * remote-utils.c (convert_int_to_ascii): Constify `from' parameter + type. + (convert_ascii_to_int): : Constify `from' parameter type. + (decode_M_packet, decode_X_packet): Replace the `to' parameter by + a `to_p' pointer to pointer parameter. If TO_P is NULL, malloc + the needed buffer in-place. + (relocate_instruction): New. + * server.c (handle_query) <qSymbols>: If the target supports + tracepoints, give it a chance of looking up symbols. Report + support for fast tracepoints. + (handle_status): Stabilize threads. + (process_serial_event): Adjust. + * server.h (struct fast_tracepoint_jump): Forward declare. + (struct process_info) <fast_tracepoint_jumps>: New field. + (convert_ascii_to_int, convert_int_to_ascii): Adjust. + (decode_X_packet, decode_M_packet): Adjust. + (relocate_instruction): Declare. + (in_process_agent_loaded): Declare. + (tracepoint_look_up_symbols): Declare. + (struct fast_tpoint_collect_status): Declare. + (fast_tracepoint_collecting): Declare. + (force_unlock_trace_buffer): Declare. + (handle_tracepoint_bkpts): Declare. + (initialize_low_tracepoint) + (supply_fast_tracepoint_registers) [IN_PROCESS_AGENT]: Declare. + * target.h (struct target_ops) <stabilize_threads, + install_fast_tracepoint_jump_pad>: New fields. + (stabilize_threads, install_fast_tracepoint_jump_pad): New. + * tracepoint.c [HAVE_MALLOC_H]: Include malloc.h. + [HAVE_STDINT_H]: Include stdint.h. + (trace_debug_1): Rename to ... + (trace_vdebug): ... this. + (trace_debug): Rename to ... + (trace_debug_1): ... this. Add `level' parameter. + (trace_debug): New. + (ATTR_USED, ATTR_NOINLINE): New. + (IP_AGENT_EXPORT): New. + (gdb_tp_heap_buffer, gdb_jump_pad_buffer, gdb_jump_pad_buffer_end) + (collecting, gdb_collect, stop_tracing, flush_trace_buffer) + (about_to_request_buffer_space, trace_buffer_is_full) + (stopping_tracepoint, expr_eval_result, error_tracepoint) + (tracepoints, tracing, trace_buffer_ctrl, trace_buffer_ctrl_curr) + (trace_buffer_lo, trace_buffer_hi, traceframe_read_count) + (traceframe_write_count, traceframes_created) + (trace_state_variables) + New renaming defines. + (struct ipa_sym_addresses): New. + (STRINGIZE_1, STRINGIZE, IPA_SYM): New. + (symbol_list): New. + (ipa_sym_addrs): New. + (all_tracepoint_symbols_looked_up): New. + (in_process_agent_loaded): New. + (write_e_ipa_not_loaded): New. + (maybe_write_ipa_not_loaded): New. + (tracepoint_look_up_symbols): New. + (debug_threads) [IN_PROCESS_AGENT]: New. + (read_inferior_memory) [IN_PROCESS_AGENT]: New. + (UNKNOWN_SIDE_EFFECTS): New. + (stop_tracing): New. + (flush_trace_buffer): New. + (stop_tracing_bkpt): New. + (flush_trace_buffer_bkpt): New. + (read_inferior_integer): New. + (read_inferior_uinteger): New. + (read_inferior_data_pointer): New. + (write_inferior_data_pointer): New. + (write_inferior_integer): New. + (write_inferior_uinteger): New. + (struct collect_static_trace_data_action): Delete. + (enum tracepoint_type): New. + (struct tracepoint) <type>: New field `type'. + <actions_str, step_actions, step_actions_str>: Only include in GDBserver. + <orig_size, obj_addr_on_target, adjusted_insn_addr> + <adjusted_insn_addr_end, jump_pad, jump_pad_end>: New fields. + (tracepoints): Use IP_AGENT_EXPORT. + (last_tracepoint): Don't include in the IPA. + (stopping_tracepoint): Use IP_AGENT_EXPORT. + (trace_buffer_is_full): Use IP_AGENT_EXPORT. + (alloced_trace_state_variables): New. + (trace_state_variables): Use IP_AGENT_EXPORT. + (traceframe_t): Delete unused variable. + (circular_trace_buffer): Don't include in the IPA. + (trace_buffer_start): Delete. + (struct trace_buffer_control): New. + (trace_buffer_free): Delete. + (struct ipa_trace_buffer_control): New. + (GDBSERVER_FLUSH_COUNT_MASK, GDBSERVER_FLUSH_COUNT_MASK_PREV) + (GDBSERVER_FLUSH_COUNT_MASK_CURR, GDBSERVER_UPDATED_FLUSH_COUNT_BIT): + New. + (trace_buffer_ctrl): New. + (TRACE_BUFFER_CTRL_CURR): New. + (trace_buffer_start, trace_buffer_free, trace_buffer_end_free): + Reimplement as macros. + (trace_buffer_wrap): Delete. + (traceframe_write_count, traceframe_read_count) + (traceframes_created, tracing): Use IP_AGENT_EXPORT. + (struct tracepoint_hit_ctx) <type>: New field. + (struct fast_tracepoint_ctx): New. + (memory_barrier): New. + (cmpxchg): New. + (record_tracepoint_error): Update atomically in the IPA. + (clear_inferior_trace_buffer): New. + (about_to_request_buffer_space): New. + (trace_buffer_alloc): Handle GDBserver and inferior simulatenous + updating the same buffer. + (add_tracepoint): Default the tracepoint's type to trap + tracepoint, and orig_size to -1. + (get_trace_state_variable) [IN_PROCESS_AGENT]: Handle allocated + internal variables. + (create_trace_state_variable): New parameter `gdb'. Handle it. + (clear_installed_tracepoints): Clear fast tracepoint jumps. + (cmd_qtdp): Handle fast tracepoints. + (cmd_qtdv): Adjust. + (max_jump_pad_size): New. + (gdb_jump_pad_head): New. + (get_jump_space_head): New. + (claim_jump_space): New. + (sort_tracepoints): New. + (MAX_JUMP_SIZE): New. + (cmd_qtstart): Handle fast tracepoints. Sync tracepoints with the + IPA. + (stop_tracing) [IN_PROCESS_AGENT]: Don't include the tdisconnected + support. Upload fast traceframes, and delete internal IPA + breakpoints. + (stop_tracing_handler): New. + (flush_trace_buffer_handler): New. + (cmd_qtstop): Upload fast tracepoints. + (response_tracepoint): Handle fast tracepoints. + (tracepoint_finished_step): Upload fast traceframes. Set the + tracepoint hit context's tracepoint type. + (handle_tracepoint_bkpts): New. + (tracepoint_was_hit): Set the tracepoint hit context's tracepoint + type. Add comment about fast tracepoints. + (collect_data_at_tracepoint) [IN_PROCESS_AGENT]: Don't access the + non-existing action_str field. + (get_context_regcache): Handle fast tracepoints. + (do_action_at_tracepoint) [!IN_PROCESS_AGENT]: Don't write the PC + to the regcache. + (fast_tracepoint_from_jump_pad_address): New. + (fast_tracepoint_from_ipa_tpoint_address): New. + (collecting_t): New. + (force_unlock_trace_buffer): New. + (fast_tracepoint_collecting): New. + (collecting): New. + (gdb_collect): New. + (write_inferior_data_ptr): New. + (target_tp_heap): New. + (target_malloc): New. + (download_agent_expr): New. + (UALIGN): New. + (download_tracepoints): New. + (download_trace_state_variables): New. + (upload_fast_traceframes): New. + (IPA_FIRST_TRACEFRAME): New. + (IPA_NEXT_TRACEFRAME_1): New. + (IPA_NEXT_TRACEFRAME): New. + [IN_PROCESS_AGENT]: Include sys/mman.h and fcntl.h. + [IN_PROCESS_AGENT] (gdb_tp_heap_buffer, gdb_jump_pad_buffer) + (gdb_jump_pad_buffer_end): New. + [IN_PROCESS_AGENT] (initialize_tracepoint_ftlib): New. + (initialize_tracepoint): Adjust. + [IN_PROCESS_AGENT]: Allocate the IPA heap, and jump pad scratch + buffer. Initialize the low module. + * utils.c (PREFIX, TOOLNAME): New. + (malloc_failure): Use PREFIX. + (error): In the IPA, an error causes an exit. + (fatal, warning): Use PREFIX. + (internal_error): Use TOOLNAME. + (NUMCELLS): Increase to 10. + * configure, config.in: Regenerate. + +2010-06-01 Pedro Alves <pedro@codesourcery.com> * server.c (handle_query) <qSupported>: Do two passes over the qSupported string to avoid nesting strtok. |