record-btrace: add (reverse-)stepping support
[deliverable/binutils-gdb.git] / gdb / ChangeLog
index c84ae2da94061d94f86f40fdc2f8fa6a6daee6bf..3e7f1492a0ecd2cbbb5f15c500937f4629e287ef 100644 (file)
@@ -1,3 +1,288 @@
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * btrace.h (btrace_thread_flag): New.
+       (struct btrace_thread_info) <flags>: New.
+       * record-btrace.c (record_btrace_resume_thread)
+       (record_btrace_find_thread_to_move, btrace_step_no_history)
+       (btrace_step_stopped, record_btrace_start_replaying)
+       (record_btrace_step_thread, record_btrace_decr_pc_after_break)
+       (record_btrace_find_resume_thread): New.
+       (record_btrace_resume, record_btrace_wait): Extend.
+       (record_btrace_can_execute_reverse): New.
+       (record_btrace_open): Fail in non-stop mode.
+       (record_btrace_set_replay): Split into this, ...
+       (record_btrace_stop_replaying): ... this, ...
+       (record_btrace_clear_histories): ... and this.
+       (init_record_btrace_ops): Init to_can_execute_reverse.
+       * NEWS: Announce it.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * target.h (struct target_ops) <to_decr_pc_after_break>: New.
+       (forward_target_decr_pc_after_break)
+       (target_decr_pc_after_break): New.
+       * target.c (forward_target_decr_pc_after_break)
+       (target_decr_pc_after_break): New.
+       * aix-thread.c (aix_thread_wait): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+       * darwin-nat.c (cancel_breakpoint): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+       * infrun.c (adjust_pc_after_break): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+       * linux-nat.c (cancel_breakpoint): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+       * linux-thread-db.c (check_event): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+       * record-full.c (record_full_wait_1): Call target_decr_pc_after_break
+       instead of gdbarch_decr_pc_after_break.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * btrace.c: Include regcache.h.
+       (btrace_add_pc): New.
+       (btrace_enable): Call btrace_add_pc.
+       (btrace_is_empty): New.
+       * btrace.h (btrace_is_empty): New.
+       * record-btrace.c (require_btrace, record_btrace_info): Call
+       btrace_is_empty.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * common/linux-btrace.c (perf_event_read_bts, linux_read_btrace):
+       Support delta reads.
+       (linux_disable_btrace): Change return type.
+       * common/linux-btrace.h (linux_read_btrace): Change parameters
+       and return type to allow error reporting.  Update users.
+       (linux_disable_btrace): Change return type.  Update users.
+       * common/btrace-common.h (btrace_read_type) <BTRACE_READ_DELTA>:
+       New.
+       (btrace_error): New.
+       (btrace_block) <begin>: Comment on BEGIN == 0.
+       * btrace.c (btrace_compute_ftrace): Start from the end of
+       the current trace.
+       (btrace_stitch_trace, btrace_clear_history): New.
+       (btrace_fetch): Read delta trace, return if replaying.
+       (btrace_clear): Move clear history code to btrace_clear_history.
+       (parse_xml_btrace): Throw an error if parsing failed.
+       * target.h (struct target_ops) <to_read_btrace>: Change parameters
+       and return type to allow error reporting.
+       (target_read_btrace): Change parameters and return type to allow
+       error reporting.
+       * target.c (target_read_btrace): Update.
+       * remote.c (remote_read_btrace): Support delta reads.  Pass
+       errors on.
+       * NEWS: Announce it.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record.h (record_btrace_frame_unwind)
+       (record_btrace_tailcall_frame_unwind): New declarations.
+       * dwarf2-frame: Include record.h
+       (dwarf2_frame_cfa): Throw an error for btrace frames.
+       * record-btrace.c: Include hashtab.h.
+       (btrace_get_bfun_name): New.
+       (btrace_call_history): Call btrace_get_bfun_name.
+       (struct btrace_frame_cache): New.
+       (bfcache): New.
+       (bfcache_hash, bfcache_eq, bfcache_new): New.
+       (btrace_get_frame_function): New.
+       (record_btrace_frame_unwind_stop_reason): Allow unwinding.
+       (record_btrace_frame_this_id): Compute own id.
+       (record_btrace_frame_prev_register): Provide PC, throw_error
+       for all other registers.
+       (record_btrace_frame_sniffer): Detect btrace frames.
+       (record_btrace_tailcall_frame_sniffer): New.
+       (record_btrace_frame_dealloc_cache): New.
+       (record_btrace_frame_unwind): Add new functions.
+       (record_btrace_tailcall_frame_unwind): New.
+       (_initialize_record_btrace): Allocate cache.
+       * btrace.c (btrace_clear): Call reinit_frame_cache.
+       * NEWS: Announce it.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_set_replay)
+       (record_btrace_goto_begin, record_btrace_goto_end)
+       (record_btrace_goto): New.
+       (init_record_btrace_ops): Initialize them.
+       * NEWS: Announce it.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_find_new_threads)
+       (record_btrace_thread_alive): New.
+       (init_record_btrace_ops): Initialize to_find_new_threads and
+       to_thread_alive.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_resume): New.
+       (record_btrace_wait): New.
+       (init_record_btrace_ops): Initialize to_wait and to_resume.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_xfer_partial)
+       (record_btrace_insert_breakpoint, record_btrace_remove_breakpoint)
+       (record_btrace_allow_memory_access): New.
+       (init_record_btrace_ops): Initialize new methods.
+       * target.c (raw_memory_xfer_partial): Bail out if target reports
+       that this memory is not available.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * target.h (target_ops) <to_insert_breakpoint>
+       <to_remove_breakpoint>: Add target_ops parameter.
+       (forward_target_insert_breakpoint): New.
+       (forward_target_remove_breakpoint): New.
+       (memory_remove_breakpoint, memory_insert_breakpoint):
+       Add target_ops parameter.
+       * target.c (target_insert_breakpoint): Split into this and ...
+       (forward_target_insert_breakpoint): ... this.
+       (target_remove_breakpoint): Split into this and ...
+       (forward_target_remove_breakpoint): ... this.
+       (debug_to_insert_breakpoint): Add target_ops parameter.
+       Call forward_target_insert_breakpoint.
+       (debug_to_remove_breakpoint): Add target_ops parameter.
+       Call forward_target_remove_breakpoint.
+       (update_current_target): Do not inherit or default to_insert_breakpoint
+       and to_remove_breakpoint.
+       * corelow.c (ignore): Add target_ops parameter.
+       * exec.c (ignore): Add target_ops parameter.
+       * mem-break.c (memory_insert_breakpoint, memory_remove_breakpoint):
+       Add target_ops parameter.
+       * monitor.c (monitor_insert_breakpoint, monitor_remove_breakpoint):
+       Add target_ops parameter.
+       * nto-procfs.c (procfs_insert_breakpoint, procfs_remove_breakpoint):
+       Add target_ops parameter.
+       * record-full.c (record_full_beneath_to_insert_breakpoint)
+       (record_full_beneath_to_remove_breakpoint, tmp_to_insert_breakpoint)
+       (tmp_to_remove_breakpoint, record_full_insert_breakpoint)
+       (record_full_remove_breakpoint, record_full_core_insert_breakpoint)
+       (record_full_core_remove_breakpoint): Add target_ops parameter.
+       Update users.
+       (record_full_beneath_to_insert_breakpoint_ops)
+       (record_full_beneath_to_remove_breakpoint_ops)
+       (tmp_to_insert_breakpoint_ops, tmp_to_remove_breakpoint_ops): New.
+       (record_full_open): Initialize tmp_to_insert_breakpoint_ops,
+       tmp_to_remove_breakpoint_ops,
+       record_full_beneath_to_insert_breakpoint_ops, and
+       record_full_beneath_to_remove_breakpoint_ops.
+       * remote-m32r-sdi.c (m32r_insert_breakpoint)
+       (m32r_remove_breakpoint): Add target_ops parameter.
+       * remote-mips.c (mips_insert_breakpoint, mips_remove_breakpoint):
+       Add target_ops parameter.
+       * remote.c (remote_insert_breakpoint, remote_remove_breakpoint):
+       Add target_ops parameter.
+
+2014-01-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+            Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c: Include frame-unwind.h.
+       (record_btrace_frame_unwind_stop_reason)
+       (record_btrace_frame_this_id, record_btrace_frame_prev_register)
+       (record_btrace_frame_sniffer, record_btrace_frame_unwind):
+       New.
+       (init_record_btrace_ops): Install it.
+
+2014-01-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * frame.c (get_frame_unwind_stop_reason): Unconditionally call
+       get_prev_frame_1.
+
+2014-01-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * dwarf2-frame.c (dwarf2_frame_cfa): Move UNWIND_UNAVAILABLE check
+       earlier.
+
+2014-01-16  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * frame-unwind.c: Include target.h.
+       (frame_unwind_try_unwinder): New function with code from ...
+       (frame_unwind_find_by_frame): ... here.  New variable
+       unwinder_from_target, call also target_get_unwinder)
+       (target_get_tailcall_unwinder, and frame_unwind_try_unwinder for it.
+       * target.c (target_get_unwinder, target_get_tailcall_unwinder): New.
+       * target.h (struct target_ops): New fields to_get_unwinder and
+       to_get_tailcall_unwinder.
+       (target_get_unwinder, target_get_tailcall_unwinder): New declarations.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_fetch_registers)
+       (record_btrace_store_registers)
+       (record_btrace_to_prepare_to_store): New.
+       (init_record_btrace_ops): Add the above.
+
+2014-01-16  Tom Tromey  <tromey@redhat.com>
+
+       * windows-nat.c (windows_prepare_to_store): Add 'self' argument.
+       * target.h (struct target_ops) <to_prepare_to_store>: Add
+       argument.
+       (target_prepare_to_store): Add argument.
+       * target.c (debug_to_prepare_to_store): Add argument.
+       (update_current_target): Update.
+       * remote.c (remote_prepare_to_store): Add 'self' argument.
+       * remote-sim.c (gdbsim_prepare_to_store): Add 'self' argument.
+       * remote-mips.c (mips_prepare_to_store): Add 'self' argument.
+       * remote-m32r-sdi.c (m32r_prepare_to_store): Add 'self' argument.
+       * record-full.c (record_full_core_prepare_to_store): Add 'self'
+       argument.
+       * ravenscar-thread.c (ravenscar_prepare_to_store): Add argument.
+       * nto-procfs.c (procfs_prepare_to_store): Add 'self' argument.
+       * monitor.c (monitor_prepare_to_store): Add 'self' argument.
+       * inf-child.c (inf_child_prepare_to_store): Add 'self' argument.
+       * go32-nat.c (go32_prepare_to_store): Add 'self' argument.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * btrace.h (replay) <replay>: New.
+       (btrace_is_replaying): New.
+       * btrace.c (btrace_clear): Free replay iterator.
+       (btrace_is_replaying): New.
+       * record-btrace.c (record_btrace_is_replaying): New.
+       (record_btrace_info): Print insn number if replaying.
+       (record_btrace_insn_history): Start at replay position.
+       (record_btrace_call_history): Start at replay position.
+       (init_record_btrace_ops): Init to_record_is_replaying.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (record_btrace_insn_history_range): Include
+       end.
+       (record_btrace_insn_history_from): Adjust range.
+       (record_btrace_call_history_range): Include
+       end.
+       (record_btrace_call_history_from): Adjust range.
+       * NEWS: Announce changes.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record.h (enum record_print_flag)
+       <record_print_indent_calls>: New.
+       * record.c (get_call_history_modifiers): Recognize /c modifier.
+       (_initialize_record): Document /c modifier.
+       * record-btrace.c (btrace_call_history): Add btinfo parameter.
+       Reorder fields.  Optionally indent the function name.  Update
+       all users.
+       * NEWS: Announce changes.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * common/linux-btrace.c (linux_enable_btrace): Enlarge buffer.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * btrace.c (ftrace_new_function): Start counting at one.
+       * record-btrace.c (record_btrace_info): Adjust number of calls
+       and insns.
+       * NEWS: Announce it.
+
+2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * record-btrace.c (btrace_call_history_insn_range): Print
+       insn range as [begin, end].
+
 2014-01-16  Markus Metzger  <markus.t.metzger@intel.com>
 
        * btrace.h (struct btrace_func_link): New.
This page took 0.026851 seconds and 4 git commands to generate.