From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13151 invoked by alias); 21 Aug 2013 13:42:47 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 13133 invoked by uid 9674); 21 Aug 2013 13:42:47 -0000 Date: Wed, 21 Aug 2013 13:42:00 -0000 Message-ID: <20130821134247.13112.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] jankratochvil/btrace-v4mail: reverse-20080717-branchpoint-15259-g1717170 X-Git-Refname: refs/heads/jankratochvil/btrace-v4mail X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: 17171708e1616f052da8053eb03a708cd17ae2d4 X-SW-Source: 2013-q3/txt/msg00029.txt.bz2 List-Id: The branch, jankratochvil/btrace-v4mail has been created at 17171708e1616f052da8053eb03a708cd17ae2d4 (commit) - Log ----------------------------------------------------------------- commit 17171708e1616f052da8053eb03a708cd17ae2d4 Author: Markus Metzger 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 * 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 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 2013-07-03 Markus Metzger * btrace.h (btrace_thread_flag): New. (struct btrace_thread_info): 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 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 * infrun.c (handle_inferior_event): Check if we know the function start address. commit 054661e1f9ced6a973369ea433ea2414003235f9 Author: Markus Metzger 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 * 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 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 CC: Pedro Alves 2013-07-03 Markus Metzger * 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): 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): 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): 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 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 * common/linux-btrace.c (linux_read_btrace): Free trace from previous iteration. commit 48d0e35def94a3ae33e4a32b0ea8ec845950b765 Author: Markus Metzger 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 2013-04-24 Markus Metzger * frame.h (enum frame_type) : 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 Date: Wed Jul 3 11:14:27 2013 +0200 record-btrace: add record goto target methods Reviewed-by: Eli Zaretskii CC: Christian Himpel 2013-07-03 Markus Metzger * 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 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 * record-btrace.c (record_btrace_find_new_threads): New. (init_record_btrace_ops): Initialize to_find_new_threads. commit 2a9c6b93bedceba02ac4a45610f9547fbe9cdaf2 Author: Markus Metzger 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 * 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 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 * record-btrace.c (record_btrace_xfer_partial): New. (init_record_btrace_ops): Initialize xfer_partial. commit e128581391ab4d9f636aa580da9cfaaaf450fa55 Author: Markus Metzger 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 Markus Metzger 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 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 * 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 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 * 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 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 * target.h (target_ops) : 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 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 * btrace.h (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 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 CC: Christian Himpel 2013-07-03 Markus Metzger * 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 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 CC: Christian Himpel 2013-07-03 Markus Metzger * record.h (enum record_print_flag) : 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 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 * common/linux-btrace.c (linux_enable_btrace): Increase buffer. commit a17088515495646079e92c00e68afaef419f9fbf Author: Markus Metzger 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 * 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 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 * record-btrace.c (btrace_call_history_insn_range): Print insn range as [begin, end]. commit 8186e73eb36b5e8e14f1af0ad1a28cdc7be1084e Author: Markus Metzger 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 2013-07-03 Markus Metzger * 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) : Remove. (struct btrace_func_link): New. (struct btrace_func): Rename to ... (struct btrace_function): ...this. Update all users. (struct btrace_function) : 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) : Remove. (struct btrace_target_info) : 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 Date: Wed Jul 3 11:14:12 2013 +0200 record: upcase record_print_flag enumeration constants 2013-07-03 Markus Metzger * record.h (record_print_flag) : Rename into ... (record_print_flag) : ... this. Update all users. commit 3abce2ee26f75c81466e56ec94a4c2ec668ea280 Author: Markus Metzger 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 * 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.