public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  jankratochvil/btrace-v4mail: reverse-20080717-branchpoint-15259-g1717170
@ 2013-08-21 13:42 jkratoch
  0 siblings, 0 replies; 2+ messages in thread
From: jkratoch @ 2013-08-21 13:42 UTC (permalink / raw)
  To: archer-commits

The branch, jankratochvil/btrace-v4mail has been created
        at  17171708e1616f052da8053eb03a708cd17ae2d4 (commit)

- Log -----------------------------------------------------------------
commit 17171708e1616f052da8053eb03a708cd17ae2d4
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:34 2013 +0200

    record-btrace: skip tail calls in back trace
    
    The branch trace represents the caller/callee relationship of tail calls.  The
    caller of a tail call is shown in the back trace and in the function-call
    history.
    
    This is not consistent with GDB's normal behavior, where the tail caller is not
    shown in the back trace.
    It further causes the finish command to fail for tail calls.
    
    This patch skips tail calls when computing the back trace during replay.  The
    finish command now works also for tail calls.
    
    The tail caller is still shown in the function-call history.
    
    I'm not sure which is the better behavior.  I liked seeing the tail caller in
    the call stack and I'm not using the finish command very often.  On the other
    hand, reverse/replay should be as close to live debugging as possible.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* record-btrace.c (record_btrace_frame_sniffer): Skip tail calls.
    
    testsuite/
    	* gdb.btrace/tailcall.exp: Update.  Add stepping tests.
    	* gdb.btrace/rn-dl-bind.c: New.
    	* gdb.btrace/rn-dl-bind.exp: New.

commit 3024fbbdc14c5b19c976e4667ab925683daf3253
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:33 2013 +0200

    record-btrace: add (reverse-)stepping support
    
    There's an open regarding frame unwinding.  When I start stepping, the frame
    cache will still be based on normal unwinding as will the frame cached in the
    thread's stepping context.  This will prevent me from detecting that i stepped
    into a subroutine.
    
    To overcome that, I'm resetting the frame cache and setting the thread's
    stepping cache based on the current frame - which is now computed using branch
    tracing unwind.  I had to split get_current_frame to avoid checks that would
    prevent me from doing this.
    
    I also need to call registers_changed when I return from to_wait.  Otherwise,
    the PC is not updated and the current location is shown incorrectly.  Not sure
    whether this is intended or whether I'm unintentionally working around
    something, here.
    
    It looks like I don't need any special support for breakpoints.  Is there a
    scenario where normal breakpoints won't work?
    
    Non-stop mode is not working.  Do not allow record-btrace in non-stop mode.
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* btrace.h (btrace_thread_flag): New.
    	(struct btrace_thread_info)<flags>: New.
    	* frame.c (get_current_frame_nocheck): New.
    	(get_current_frame): Call get_current_frame_nocheck.
    	* frame.h (get_current_frame_nocheck): 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_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.
    
    testsuite/
    	* gdb.btrace/delta.exp: Check reverse stepi.
    	* gdb.btrace/finish.exp: New.
    	* gdb.btrace/next.exp: New.
    	* gdb.btrace/nexti.exp: New.
    	* gdb.btrace/record_goto.c: Add comments.
    	* gdb.btrace/step.exp: New.
    	* gdb.btrace/stepi.exp: New.
    	* gdb.btrace/multi-thread-step.c: New.
    	* gdb.btrace/multi-thread-step.exp: New.
    
    doc/
    	* gdb.texinfo: Document limited reverse/replay support
    	for target record-btrace.

commit ce74a9c4f40a65bb879021ee51235b1f399cbd4e
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:32 2013 +0200

    infrun: reverse stepping from unknown functions
    
    When reverse-stepping, only insert a resume breakpoint at ecs->stop_func_start
    if the function start is known.  Otherwise, keep single-stepping.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* infrun.c (handle_inferior_event): Check if we know the function
    	start address.

commit 054661e1f9ced6a973369ea433ea2414003235f9
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:31 2013 +0200

    record-btrace: show trace from enable location
    
    The btrace record target shows the branch trace from the location of the first
    branch destination.  This is the first trace record BTS records.
    
    After adding incremental updates, we can now add a dummy record for the current
    PC when we enable tracing so we show the trace from the location where branch
    tracing has been enabled.
    
    2013-07-03  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_fetch): Return if replaying.
    	* btrace.h (btrace_is_empty): New.
    	* record-btrace.c (require_btrace, record_btrace_info): Call
    	btrace_is_empty.
    
    testsuite/
    	* gdb.btrace/exception.exp: Update.
    	* gdb.btrace/instruction_history.exp: Update.
    	* gdb.btrace/record_goto.exp: Update.
    	* gdb.btrace/tailcall.exp: Update.
    	* gdb.btrace/unknown_functions.exp: Update.
    	* gdb.btrace/delta.exp: New.

commit 9c1682597d89c1467107f10a45fe59eff3d1a661
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:30 2013 +0200

    btrace, gdbserver: read branch trace incrementally
    
    Read branch trace data incrementally and extend the current trace rather than
    discarding it and reading the entire trace buffer each time.
    
    If the branch trace buffer overflowed, we can't extend the current trace so we
    discard it and start anew by reading the entire branch trace buffer.
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    CC: Pedro Alves  <palves@redhat.com>
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* common/linux-btrace.c (perf_event_read_bts, linux_read_btrace):
    	Support delta reads.
    	* common/linux-btrace.h (linux_read_btrace): Change parameters
    	and return type to allow error reporting.
    	* common/btrace-common.h (btrace_read_type)<btrace_read_delta>:
    	New.
    	* 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.
    	(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.
    
    gdbserver/
    	* target.h (target_ops)<read_btrace>: Change parameters and
    	return type to allow error reporting.
    	* server.c (handle_qxfer_btrace): Support delta reads.  Pass
    	trace reading errors on.
    	* linux-low.c (linux_low_read_btrace): Pass trace reading
    	errors on.

commit eab3ee7a5b40718814257ad2bca3fbf9370d1478
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:29 2013 +0200

    btrace, linux: fix memory leak when reading branch trace
    
    When it takes more than one iteration to read the BTS trace, the trace from the
    previous iteration is leaked.  Fix it.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* common/linux-btrace.c (linux_read_btrace): Free trace from
    	previous iteration.

commit 48d0e35def94a3ae33e4a32b0ea8ec845950b765
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:28 2013 +0200

    record-btrace: extend unwinder
    
    Extend the always failing unwinder to provide the PC based on the call structure
    detected in the branch trace.
    
    There are several open points:
    
    An assertion in get_frame_id at frame.c:340 requires that a frame provides a
    stack address.  The record-btrace unwinder can't provide this since the trace
    does not contain data.  I incorrectly set stack_addr_p to 1 to avoid the
    assertion.
    
    When evaluating arguments for printing the stack back trace, there's an ugly
    error displayed: "error reading variable: can't compute CFA for this frame".
    The error is correct, we can't compute the CFA since we don't have the stack at
    that time, but it is rather annoying at this place and makes the back trace
    difficult to read.
    
    Now that we set the PC to a different value and provide a fake unwinder, we have
    the potential to affect almost every other command.  How can this be tested
    sufficiently?  I added a few tests for the intended functionality, but nothing
    so far to ensure that it does not break some other command when used in this
    context.
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    2013-04-24  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* frame.h (enum frame_type) <BTRACE_FRAME>: New.
    	* 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_frame_dealloc_cache): New.
    	(record_btrace_frame_unwind): Add new functions.
    	(_initialize_record_btrace): Allocate cache.
    	* btrace.c (btrace_clear): Call reinit_frame_cache.
    	* NEWS: Announce it.
    
    testsuite/
    	* gdb.btrace/record_goto.exp: Add backtrace test.
    	* gdb.btrace/tailcall.exp: Add backtrace test.

commit 90d3925401769cb3fba12948c83a3a6731a9506c
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:27 2013 +0200

    record-btrace: add record goto target methods
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    CC: Christian Himpel  <christian.himpel@intel.com>
    2013-07-03  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.
    
    testsuite/
    	* gdb.btrace/Makefile.in (EXECUTABLES): Add record_goto.
    	* gdb.btrace/record_goto.c: New.
    	* gdb.btrace/record_goto.exp: New.
    	* gdb.btrace/x86-record_goto.S: New.

commit e4c5a4b0dc183df7f37cf5b6a3303ea923827f9b
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:26 2013 +0200

    record-btrace: provide target_find_new_threads method
    
    The "info threads" command tries to read memory, which is not possible during
    replay.  This results in an error message and aborts the command without showing
    the existing threads.
    
    Provide a to_find_new_threads target method to skip the search while replaying.
    
    2013-07-03  Markus Metzger <markus.t.metzger@intel.com>
    
    	* record-btrace.c (record_btrace_find_new_threads): New.
    	(init_record_btrace_ops): Initialize to_find_new_threads.

commit 2a9c6b93bedceba02ac4a45610f9547fbe9cdaf2
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:25 2013 +0200

    record-btrace: add to_wait and to_resume target methods.
    
    Add simple to_wait and to_resume target methods that prevent stepping when the
    current replay position is not at the end of the execution log.
    
    2013-07-03  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.

commit c258c3a39b8c4c4271df479a8edde54cc9a73248
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:24 2013 +0200

    record-btrace: provide xfer_partial target method
    
    Provide the xfer_partial target method for the btrace record target.
    
    Only allow memory accesses to readonly memory while we're replaying.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* record-btrace.c (record_btrace_xfer_partial): New.
    	(init_record_btrace_ops): Initialize xfer_partial.

commit e128581391ab4d9f636aa580da9cfaaaf450fa55
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:23 2013 +0200

    record-btrace, frame: supply target-specific unwinder
    
    Supply a target-specific frame unwinder for the record-btrace target that does
    not allow unwinding while replaying.
    
    2013-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
                Markus Metzger  <markus.t.metzger@intel.com>
    
    gdb/
    	* 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.

commit 28156e32a30c691efb9ecf3835fdc12900d237f2
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:22 2013 +0200

    frame, backtrace: allow targets to supply a frame unwinder
    
    Allow targets to supply an own target-specific frame unwinder.  If a
    target-specific unwinder is supplied, it will be chosen before any other
    unwinder.
    
    gdb/
    2013-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
    
            * dwarf2-frame.c (dwarf2_frame_cfa): Move UNWIND_UNAVAILABLE check
            earlier.
            * 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 and
            frame_unwind_try_unwinder for it.
            * frame.c (get_frame_unwind_stop_reason): Unconditionally call
            get_prev_frame_1.
            * target.c (target_get_unwinder): New.
            * target.h (struct target_ops): New field to_get_unwinder.
            (target_get_unwinder): New declaration.

commit db8aae9a2a9d80e970ea21dd4ce1dba63398f2de
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:21 2013 +0200

    record-btrace: supply register target methods
    
    Supply target methods to allow reading the PC.  Forbid anything else.
    
    2013-07-03  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.

commit 881d9d42d74ac80ecd60857aae19d90063228859
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:20 2013 +0200

    target: add ops parameter to to_prepare_to_store method
    
    To allow forwarding the prepare_to_store request to the target beneath,
    add a target_ops * parameter.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* target.h (target_ops) <to_prepare_to_store>: Add parameter.
    	(target_prepare_to_store): Remove macro.  New function.
    	* target.c (update_current_target): Do not inherit/default
    	prepare_to_store.
    	(target_prepare_to_store): New.
    	(debug_to_prepare_to_store): Remove.
    	* remote.c (remote_prepare_to_store): Add parameter.
    	* remote-mips.c (mips_prepare_to_store): Add parameter.
    	* remote-m32r-sdi.c (m32r_prepare_to_store): Add parameter.
    	* ravenscar-thread.c (ravenscar_prepare_to_store): Add
    	parameter.
    	* monitor.c (monitor_prepare_to_store): Add parameter.
    	* inf-child.c (inf_child_prepare_to_store): Add parameter.

commit 85732ad482f0e1b8952a2c6fe7d586e90d4d8855
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:19 2013 +0200

    btrace: add replay position to btrace thread info
    
    Add a branch trace instruction iterator pointing to the current replay position
    to the branch trace thread info struct.
    
    Free the iterator when btrace is cleared.
    
    Start at the replay position for the instruction and function-call histories.
    
    2013-07-03  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.

commit ac9ce64a17b07ffd6bb751f6cc82bcd92e6656b4
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:18 2013 +0200

    record-btrace: make ranges include begin and end
    
    The "record function-call-history" and "record instruction-history" commands
    accept a range "begin, end".  End is not included in both cases.  Include it.
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    CC: Christian Himpel  <christian.himpel@intel.com>
    2013-07-03  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.
    
    testsuite/
    	* gdb.btrace/function_call_history.exp: Update tests.
    	* gdb.btrace/instruction_history.exp: Update tests.
    
    doc/
    	* gdb.texinfo (Process Record and Replay): Update documentation.

commit b9c40c917278c60e9d30f9163fe2c50b248b6933
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:17 2013 +0200

    record-btrace: optionally indent function call history
    
    Add a new modifier /c to the "record function-call-history" command to
    indent the function name based on its depth in the call stack.
    
    Also reorder the optional fields to have the indentation at the very beginning.
    Prefix the insn range (/i modifier) with "inst ".
    Prefix the source line (/l modifier) with "at ".
    Change the range syntax from "begin-end" to "begin,end" to allow copy&paste to
    the "record instruction-history" and "list" commands.
    
    Adjust the respective tests and add new tests for the /c modifier.
    
    There is one known bug regarding indentation that results from the fact that we
    have the current instruction already inside the branch trace.  When the current
    instruction is the first (and only) instruction in a function on the outermost
    level for which we have not seen the call, the indentation starts at level 1
    with 2 leading spaces.
    
    Reviewed-by: Eli Zaretskii  <eliz@gnu.org>
    CC: Christian Himpel  <christian.himpel@intel.com>
    2013-07-03  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.
    
    testsuite/
        * gdb.btrace/function_call_history.exp: Fix expected field
        order for "record function-call-history".
        Add new tests for "record function-call-history /c".
        * gdb.btrace/exception.cc: New.
        * gdb.btrace/exception.exp: New.
        * gdb.btrace/tailcall.exp: New.
        * gdb.btrace/x86-tailcall.S: New.
        * gdb.btrace/x86-tailcall.c: New.
        * gdb.btrace/unknown_functions.c: New.
        * gdb.btrace/unknown_functions.exp: New.
        * gdb.btrace/Makefile.in (EXECUTABLES): Add new.
    
    doc/
        * gdb.texinfo (Process Record and Replay): Document new /c
        modifier accepted by "record function-call-history".

commit 501a491e11c0f4d5a1c5b6a1e10fe63370551e18
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:16 2013 +0200

    btrace: increase buffer size
    
    Try to allocate as much buffer as we can for each thread with a maximum
    of 4MB.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* common/linux-btrace.c (linux_enable_btrace): Increase buffer.

commit a17088515495646079e92c00e68afaef419f9fbf
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:15 2013 +0200

    record-btrace: start counting at one
    
    The record instruction-history and record-function-call-history commands start
    counting instructions at zero.  This is somewhat unintuitive when we start
    navigating in the recorded instruction history.  Start at one, instead.
    
    2013-07-03  Markus Metzger <markus.t.metzger@intel.com>
    
        * btrace.c (ftrace_new_function): Start counting at one.
    
    testsuite/
        * gdb.btrace/instruction_history.exp: Update.
        * gdb.btrace/function_call_history.exp: Update.

commit cf7080cd4a623ed97c8357c2cffc8b7bffe58155
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:14 2013 +0200

    record-btrace: fix insn range in function call history
    
    With the "/i" modifier, we print the instruction number range in the
    "record function-call-history" command as [begin, end).
    
    It would be more intuitive if we printed the range as [begin, end].
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* record-btrace.c (btrace_call_history_insn_range): Print
    	insn range as [begin, end].

commit 8186e73eb36b5e8e14f1af0ad1a28cdc7be1084e
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:13 2013 +0200

    btrace: change branch trace data structure
    
    The branch trace is represented as 3 vectors:
      - a block vector
      - a instruction vector
      - a function vector
    
    Each vector (except for the first) is computed from the one above.
    
    Change this into a graph where a node represents a sequence of instructions
    belonging to the same function and where we have three types of edges to connect
    the function segments:
      - control flow
      - same function (instance)
      - call stack
    
    This allows us to navigate in the branch trace.  We will need this for "record
    goto" and reverse execution.
    
    This patch introduces the data structure and computes the control flow edges.
    It also introduces iterator structs to simplify iterating over the branch trace
    in control-flow order.
    
    It also fixes PR gdb/15240 since now recursive calls are handled correctly.
    Fix the test that got the number of expected fib instances and also the
    function numbers wrong.
    
    The current instruction had been part of the branch trace.  This will look odd
    once we start support for reverse execution.  Remove it.  We still keep it in
    the trace itself to allow extending the branch trace more easily in the future.
    
    CC: Christian Himpel <christian.himpel@intel.com>
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* btrace.h (struct btrace_func_link): New.
    	(enum btrace_function_flag): New.
    	(struct btrace_inst): Rename to ...
    	(struct btrace_insn): ...this. Update all users.
    	(struct btrace_func) <ibegin, iend>: Remove.
    	(struct btrace_func_link): New.
    	(struct btrace_func): Rename to ...
    	(struct btrace_function): ...this. Update all users.
    	(struct btrace_function) <segment, flow, up, insn, insn_offset,
    	number, level, flags>: New.
    	(struct btrace_insn_iterator): Rename to ...
    	(struct btrace_insn_history): ...this.
    	Update all users.
    	(struct btrace_insn_iterator, btrace_call_iterator): New.
    	(struct btrace_target_info) <btrace, itrace, ftrace>: Remove.
    	(struct btrace_target_info) <begin, end, level,
    	insn_history, call_history>: New.
    	(btrace_insn_get, btrace_insn_number, btrace_insn_begin,
    	btrace_insn_end, btrace_insn_prev, btrace_insn_next,
    	btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get,
    	btrace_call_number, btrace_call_begin, btrace_call_end,
    	btrace_call_prev, btrace_call_next, btrace_call_cmp,
    	btrace_find_function_by_number, btrace_set_insn_history,
    	btrace_set_call_history): New.
    	* btrace.c (btrace_init_insn_iterator,
    	btrace_init_func_iterator, compute_itrace): Remove.
    	(ftrace_print_function_name, ftrace_print_filename,
    	ftrace_skip_file): Change
    	parameter to const.
    	(ftrace_init_func): Remove.
    	(ftrace_debug): Use new btrace_function fields.
    	(ftrace_function_switched): Also consider gaining and
    	losing symbol information).
    	(ftrace_print_insn_addr, ftrace_new_call, ftrace_new_return,
    	ftrace_new_switch, ftrace_find_caller, ftrace_new_function,
    	ftrace_update_caller, ftrace_fixup_caller, ftrace_new_tailcall):
    	New.
    	(ftrace_new_function): Move. Remove debug print.
    	(ftrace_update_lines, ftrace_update_insns): New.
    	(ftrace_update_function): Check for call, ret, and jump.
    	(compute_ftrace): Renamed to ...
    	(btrace_compute_ftrace): ...this. Rewritten to compute call
    	stack.
    	(btrace_fetch, btrace_clear): Updated.
    	(btrace_insn_get, btrace_insn_number, btrace_insn_begin,
    	btrace_insn_end, btrace_insn_prev, btrace_insn_next,
    	btrace_insn_cmp, btrace_find_insn_by_number, btrace_call_get,
    	btrace_call_number, btrace_call_begin, btrace_call_end,
    	btrace_call_prev, btrace_call_next, btrace_call_cmp,
    	btrace_find_function_by_number, btrace_set_insn_history,
    	btrace_set_call_history): New.
    	* record-btrace.c (require_btrace): Use new btrace thread
    	info fields.
    	(record_btrace_info, btrace_insn_history,
    	record_btrace_insn_history, record_btrace_insn_history_range):
    	Use new btrace thread info fields and new iterator.
    	(btrace_func_history_src_line): Rename to ...
    	(btrace_call_history_src_line): ...this. Use new btrace
    	thread info fields.
    	(btrace_func_history): Rename to ...
    	(btrace_call_history): ...this. Use new btrace thread info
    	fields and new iterator.
    	(record_btrace_call_history, record_btrace_call_history_range):
    	Use new btrace thread info fields and new iterator.
    
    testsuite/
    	* gdb.btrace/function_call_history.exp: Fix expected function
    	trace.

commit fceddef054ff1bcfb4fcb0f895d87c14762b84c7
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:12 2013 +0200

    record: upcase record_print_flag enumeration constants
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* record.h (record_print_flag) <record_print_src_line,
    	record_print_insn_range>: Rename into ...
    	(record_print_flag) <record_print_src_line,
    	record_print_insn_range>: ... this.  Update all users.

commit 3abce2ee26f75c81466e56ec94a4c2ec668ea280
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Jul 3 11:14:11 2013 +0200

    gdbarch: add instruction predicate methods
    
    Add new methods to gdbarch for analyzing the instruction at a given address.
    Implement those methods for i386 and amd64 architectures.
    
    2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
    
    	* amd64-tdep.c (amd64_classify_insn_at, amd64_insn_is_call,
    	amd64_insn_is_ret, amd64_insn_is_jump, amd64_jmp_p): New.
    	(amd64_init_abi): Add insn_is_call, insn_is_ret, and insn_is_jump
    	to gdbarch.
    	* i386-tdep.c (i386_insn_is_call, i386_insn_is_ret,
    	i386_insn_is_jump, i386_jmp_p): New.
    	(i386_gdbarch_init): Add insn_is_call, insn_is_ret, and
    	insn_is_jump to gdbarch.
    	* gdbarch.sh (insn_is_call, insn_is_ret, insn_is_jump): New.
    	* gdbarch.h: Regenerated.
    	* gdbarch.c: Regenerated.
    	* arch-utils.h (default_insn_is_call, default_insn_is_ret,
    	default_insn_is_jump): New.
    	* arch-utils.c (default_insn_is_call, default_insn_is_ret,
    	default_insn_is_jump): New.

-----------------------------------------------------------------------


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [SCM]  jankratochvil/btrace-v4mail: reverse-20080717-branchpoint-15259-g1717170
@ 2013-09-24 14:05 jkratoch
  0 siblings, 0 replies; 2+ messages in thread
From: jkratoch @ 2013-09-24 14:05 UTC (permalink / raw)
  To: archer-commits

The branch, jankratochvil/btrace-v4mail has been deleted
       was  17171708e1616f052da8053eb03a708cd17ae2d4

-----------------------------------------------------------------------
17171708e1616f052da8053eb03a708cd17ae2d4 record-btrace: skip tail calls in back trace
-----------------------------------------------------------------------


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-09-24 14:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-21 13:42 [SCM] jankratochvil/btrace-v4mail: reverse-20080717-branchpoint-15259-g1717170 jkratoch
2013-09-24 14:05 jkratoch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).