From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27869 invoked by alias); 29 Nov 2013 14:38:33 -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 27788 invoked by uid 89); 29 Nov 2013 14:38:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_50,RDNS_NONE,URIBL_BLOCKED autolearn=no version=3.3.2 X-HELO: mga14.intel.com Received: from Unknown (HELO mga14.intel.com) (143.182.124.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 29 Nov 2013 14:38:30 +0000 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by azsmga102.ch.intel.com with ESMTP; 29 Nov 2013 06:38:22 -0800 X-ExtLoop1: 1 Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga001.fm.intel.com with ESMTP; 29 Nov 2013 06:38:20 -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 rATEcKoD012314; Fri, 29 Nov 2013 14:38:20 GMT Received: from ulvlx001.iul.intel.com (localhost [127.0.0.1]) by ulvlx001.iul.intel.com with ESMTP id rATEcKOW012737; Fri, 29 Nov 2013 15:38:20 +0100 Received: (from mmetzger@localhost) by ulvlx001.iul.intel.com with œ id rATEcJ6j012732; Fri, 29 Nov 2013 15:38:19 +0100 From: Markus Metzger To: jan.kratochvil@redhat.com Cc: gdb-patches@sourceware.org Subject: [patch v7 00/24] record-btrace: reverse Date: Fri, 29 Nov 2013 14:38:00 -0000 Message-Id: <1385735899-12481-1-git-send-email-markus.t.metzger@intel.com> X-IsSubscribed: yes X-SW-Source: 2013-11/txt/msg00914.txt.bz2 This update incorporates Jan's feedback and resolves opens with respect to frame_id handling, frame unwinding, and (reverse) stepping. The only remaining open is whether "record goto" should be implemented via to_resume/to_wait. I noted partial approvals for individual patches in the commit message of the respective patch. The series can be split roughly in three parts. At the bottom, there are a few small preparation patches. I would commit them individually as soon as they are approved. Then, there's a big patch that changes the internals of btrace, improves the existing record btrace commands and fixes PR/15240. I would commit the entire series until "record-btrace: make ranges include begin and end" (inclusive) once approved. The "record function-call-history" command can now show the call relationship like this: (gdb) record function-call-history /cli 12 fib inst 101,111 at src/fib.c:3,7 13 fib inst 112,124 at src/fib.c:3,8 14 fib inst 125,129 at src/fib.c:7 15 fib inst 130,142 at src/fib.c:3,8 16 fib inst 143,147 at src/fib.c:7,8 17 fib inst 148,152 at src/fib.c:7,8 18 fib inst 153,157 at src/fib.c:7 19 fib inst 158,168 at src/fib.c:3,7 20 fib inst 169,179 at src/fib.c:3,7 21 fib inst 180,185 at src/fib.c:3,4 The patches ad the top add support for reverse execution. I would also commit the entire series once approved. Markus Metzger (24): 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: artificial frame id's 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 record-btrace, frame: supply target-specific unwinder 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 record-btrace: add (reverse-)stepping support gdb/NEWS | 18 + gdb/amd64-linux-nat.c | 6 +- gdb/amd64-tdep.c | 67 + gdb/arch-utils.c | 15 + gdb/arch-utils.h | 4 + gdb/btrace.c | 1610 ++++++++++++++++---- gdb/btrace.h | 269 +++- gdb/common/btrace-common.h | 29 +- gdb/common/linux-btrace.c | 125 +- gdb/common/linux-btrace.h | 15 +- gdb/doc/gdb.texinfo | 32 +- gdb/dwarf2-frame-tailcall.c | 4 +- gdb/dwarf2-frame.c | 14 +- gdb/frame-unwind.c | 86 +- gdb/frame.c | 65 +- gdb/frame.h | 18 +- gdb/gdbarch.c | 75 + 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/monitor.c | 2 +- gdb/ravenscar-thread.c | 7 +- gdb/record-btrace.c | 1473 +++++++++++++++--- gdb/record-full.c | 3 +- gdb/record.c | 4 + gdb/record.h | 7 + gdb/remote-m32r-sdi.c | 2 +- gdb/remote-mips.c | 5 +- gdb/remote.c | 32 +- gdb/stack.c | 2 +- gdb/target.c | 65 +- gdb/target.h | 35 +- gdb/testsuite/gdb.btrace/Makefile.in | 3 +- gdb/testsuite/gdb.btrace/delta.exp | 76 + gdb/testsuite/gdb.btrace/exception.cc | 56 + gdb/testsuite/gdb.btrace/exception.exp | 67 + gdb/testsuite/gdb.btrace/finish.exp | 70 + gdb/testsuite/gdb.btrace/function_call_history.exp | 329 ++-- gdb/testsuite/gdb.btrace/instruction_history.exp | 77 +- gdb/testsuite/gdb.btrace/multi-thread-step.c | 53 + gdb/testsuite/gdb.btrace/multi-thread-step.exp | 99 ++ gdb/testsuite/gdb.btrace/next.exp | 89 ++ gdb/testsuite/gdb.btrace/nexti.exp | 89 ++ gdb/testsuite/gdb.btrace/record_goto.c | 51 + gdb/testsuite/gdb.btrace/record_goto.exp | 177 +++ gdb/testsuite/gdb.btrace/rn-dl-bind.c | 37 + gdb/testsuite/gdb.btrace/rn-dl-bind.exp | 48 + gdb/testsuite/gdb.btrace/step.exp | 113 ++ gdb/testsuite/gdb.btrace/stepi.exp | 114 ++ gdb/testsuite/gdb.btrace/tailcall.exp | 103 ++ gdb/testsuite/gdb.btrace/unknown_functions.c | 45 + gdb/testsuite/gdb.btrace/unknown_functions.exp | 60 + 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 + 61 files changed, 5799 insertions(+), 879 deletions(-) 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