From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18587 invoked by alias); 19 Dec 2013 16:45:11 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 18576 invoked by uid 89); 19 Dec 2013 16:45:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mga02.intel.com Received: from mga02.intel.com (HELO mga02.intel.com) (134.134.136.20) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Dec 2013 16:45:10 +0000 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 19 Dec 2013 08:45:08 -0800 X-ExtLoop1: 1 Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga001.jf.intel.com with ESMTP; 19 Dec 2013 08:45:00 -0800 Received: from ulvlx001.iul.intel.com (ulvlx001.iul.intel.com [172.28.207.17]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id rBJGixcI025979; Thu, 19 Dec 2013 16:45:00 GMT Received: from ulvlx001.iul.intel.com (localhost [127.0.0.1]) by ulvlx001.iul.intel.com with ESMTP id rBJGix0S029715; Thu, 19 Dec 2013 17:44:59 +0100 Received: (from mmetzger@localhost) by ulvlx001.iul.intel.com with œ id rBJGixsJ029711; Thu, 19 Dec 2013 17:44:59 +0100 From: Markus Metzger To: jan.kratochvil@redhat.com, palves@redhat.com Cc: gdb-patches@sourceware.org Subject: [PATCH v9 00/29] record-btrace: reverse Date: Thu, 19 Dec 2013 16:45:00 -0000 Message-Id: <1387471499-29444-1-git-send-email-markus.t.metzger@intel.com> X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00751.txt.bz2 This is a bigger update addressing Pedro's feedback. I discarded my frame_id changes and instead use Pedro's unavailable stack changes. See "frame: add frame_id_build_unavailable_stack_special". The v8 "record-btrace: provide xfer_partial target method" patch did not have any effect since the caller would simply continue with the target beneath. I changed this to now throw an error if memory is not available. To avoid issues with GDB trying to insert and remove breakpoints, this is disabled for the duration of to_insert_breakoint and to_remove_breakpoint. This needs a preparation patch "target, breakpoint: allow insert/remove breakpoint to be forwarded" to allow ther espective target methods to be forwarded. I added a test covering the error on memory accesses to "record-btrace: add (reverse-)stepping support". The "frame, backtrace: allow targets to supply a frame unwinder" patch has been split resulting in new patches "frame, cfa: check unwind stop reason first" and "frame: do not assume unwinding will succeed". A new patch "target: allow decr_pc_after_break to be defined by the target" has been added to prepare for avoiding pc adjustments after break during replay in "record-btrace: add (reverse-)stepping support". This should also apply to the s/w record target but the condition under which the pc needs to be adjusted is more complicated, here. In "gdbarch: add instruction predicate methods" I added "::0" to the new items I added to gdbarch.sh to fix an issue with verify_gdbarch. There are lots of changes to all tests throughout the series plus a new patch "btrace, test: fix multi-line btrace tests" to fix up existing tests. Markus Metzger (29): btrace, test: fix multi-line btrace tests btrace, linux: fix memory leak when reading branch trace btrace: uppercase btrace_read_type gdbarch: add instruction predicate methods frame: add frame_is_tailcall function frame: add frame_id_build_unavailable_stack_special btrace: change branch trace data structure record-btrace: fix insn range in function call history record-btrace: start counting at one btrace: increase buffer size record-btrace: optionally indent function call history record-btrace: make ranges include begin and end btrace: add replay position to btrace thread info target: add ops parameter to to_prepare_to_store method record-btrace: supply register target methods frame, backtrace: allow targets to supply a frame unwinder frame, cfa: check unwind stop reason first frame: do not assume unwinding will succeed record-btrace, frame: supply target-specific unwinder target, breakpoint: allow insert/remove breakpoint to be forwarded record-btrace: provide xfer_partial target method record-btrace: add to_wait and to_resume target methods. record-btrace: provide target_find_new_threads method record-btrace: add record goto target methods record-btrace: extend unwinder btrace, gdbserver: read branch trace incrementally record-btrace: show trace from enable location target: allow decr_pc_after_break to be defined by the target record-btrace: add (reverse-)stepping support gdb/NEWS | 25 + gdb/aix-thread.c | 2 +- gdb/amd64-linux-nat.c | 6 +- gdb/amd64-tdep.c | 67 + gdb/arch-utils.c | 15 + gdb/arch-utils.h | 4 + gdb/btrace.c | 1616 +++++++++++++++---- gdb/btrace.h | 269 +++- gdb/common/btrace-common.h | 29 +- gdb/common/linux-btrace.c | 125 +- gdb/common/linux-btrace.h | 15 +- gdb/corelow.c | 3 +- gdb/darwin-nat.c | 4 +- gdb/doc/gdb.texinfo | 32 +- gdb/dwarf2-frame-tailcall.c | 4 +- gdb/dwarf2-frame.c | 14 +- gdb/exec.c | 3 +- gdb/frame-unwind.c | 86 +- gdb/frame.c | 48 +- gdb/frame.h | 14 +- gdb/gdbarch.c | 72 + gdb/gdbarch.h | 18 + gdb/gdbarch.sh | 9 + gdb/gdbserver/linux-low.c | 36 +- gdb/gdbserver/server.c | 15 +- gdb/gdbserver/target.h | 9 +- gdb/i386-linux-nat.c | 6 +- gdb/i386-tdep.c | 59 + gdb/inf-child.c | 2 +- gdb/infcmd.c | 6 +- gdb/infrun.c | 9 +- gdb/linux-nat.c | 4 +- gdb/linux-thread-db.c | 2 +- gdb/mem-break.c | 4 +- gdb/monitor.c | 6 +- gdb/nto-procfs.c | 4 +- gdb/ravenscar-thread.c | 7 +- gdb/record-btrace.c | 1642 +++++++++++++++++--- gdb/record-full.c | 37 +- gdb/record.c | 4 + gdb/record.h | 7 + gdb/remote-m32r-sdi.c | 8 +- gdb/remote-mips.c | 13 +- gdb/remote.c | 42 +- gdb/stack.c | 2 +- gdb/target.c | 148 +- gdb/target.h | 73 +- gdb/testsuite/gdb.btrace/Makefile.in | 4 +- gdb/testsuite/gdb.btrace/data.c | 36 + gdb/testsuite/gdb.btrace/data.exp | 45 + gdb/testsuite/gdb.btrace/delta.exp | 83 + gdb/testsuite/gdb.btrace/exception.cc | 56 + gdb/testsuite/gdb.btrace/exception.exp | 73 + gdb/testsuite/gdb.btrace/finish.exp | 59 + gdb/testsuite/gdb.btrace/function_call_history.exp | 322 ++-- gdb/testsuite/gdb.btrace/instruction_history.exp | 80 +- gdb/testsuite/gdb.btrace/multi-thread-step.c | 53 + gdb/testsuite/gdb.btrace/multi-thread-step.exp | 135 ++ gdb/testsuite/gdb.btrace/next.exp | 76 + gdb/testsuite/gdb.btrace/nexti.exp | 76 + gdb/testsuite/gdb.btrace/record_goto.c | 51 + gdb/testsuite/gdb.btrace/record_goto.exp | 183 +++ gdb/testsuite/gdb.btrace/rn-dl-bind.c | 37 + gdb/testsuite/gdb.btrace/rn-dl-bind.exp | 52 + gdb/testsuite/gdb.btrace/step.exp | 89 ++ gdb/testsuite/gdb.btrace/stepi.exp | 93 ++ gdb/testsuite/gdb.btrace/tailcall.exp | 92 ++ gdb/testsuite/gdb.btrace/unknown_functions.c | 45 + gdb/testsuite/gdb.btrace/unknown_functions.exp | 62 + gdb/testsuite/gdb.btrace/x86-record_goto.S | 355 +++++ gdb/testsuite/gdb.btrace/x86-tailcall.S | 279 ++++ gdb/testsuite/gdb.btrace/x86-tailcall.c | 39 + 72 files changed, 6113 insertions(+), 987 deletions(-) create mode 100644 gdb/testsuite/gdb.btrace/data.c create mode 100644 gdb/testsuite/gdb.btrace/data.exp create mode 100644 gdb/testsuite/gdb.btrace/delta.exp create mode 100644 gdb/testsuite/gdb.btrace/exception.cc create mode 100755 gdb/testsuite/gdb.btrace/exception.exp create mode 100644 gdb/testsuite/gdb.btrace/finish.exp create mode 100644 gdb/testsuite/gdb.btrace/multi-thread-step.c create mode 100644 gdb/testsuite/gdb.btrace/multi-thread-step.exp create mode 100644 gdb/testsuite/gdb.btrace/next.exp create mode 100644 gdb/testsuite/gdb.btrace/nexti.exp create mode 100644 gdb/testsuite/gdb.btrace/record_goto.c create mode 100644 gdb/testsuite/gdb.btrace/record_goto.exp create mode 100644 gdb/testsuite/gdb.btrace/rn-dl-bind.c create mode 100644 gdb/testsuite/gdb.btrace/rn-dl-bind.exp create mode 100644 gdb/testsuite/gdb.btrace/step.exp create mode 100644 gdb/testsuite/gdb.btrace/stepi.exp create mode 100644 gdb/testsuite/gdb.btrace/tailcall.exp create mode 100644 gdb/testsuite/gdb.btrace/unknown_functions.c create mode 100644 gdb/testsuite/gdb.btrace/unknown_functions.exp create mode 100644 gdb/testsuite/gdb.btrace/x86-record_goto.S create mode 100644 gdb/testsuite/gdb.btrace/x86-tailcall.S create mode 100644 gdb/testsuite/gdb.btrace/x86-tailcall.c -- 1.8.3.1