Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH v3 0/8] Python bindings for btrace recordings
@ 2016-11-21 15:49 Tim Wiederhake
  2016-11-21 15:49 ` [PATCH v3 7/8] python: Add tests for record Python bindings Tim Wiederhake
                   ` (8 more replies)
  0 siblings, 9 replies; 20+ messages in thread
From: Tim Wiederhake @ 2016-11-21 15:49 UTC (permalink / raw)
  To: gdb-patches; +Cc: palves, markus.t.metzger

This patch series adds Python bindings for btrace recordings.

V1 of this series can be found here:
https://sourceware.org/ml/gdb-patches/2016-10/msg00733.html

V2 of this series can be found here:
https://sourceware.org/ml/gdb-patches/2016-11/msg00084.html

Changes in V3:
- Rebased to current master.
- Replaced some strncmp with strcmp in patch 4 ("Add record_start function").
- Incorporated Eli's feedback regarding the documentation part.

Tim Wiederhake (8):
  btrace: Count gaps as one instruction explicitly.
  btrace: Export btrace_decode_error function.
  btrace: Use binary search to find instruction.
  Add record_start function.
  python: Create Python bindings for record history.
  python: Implement btrace Python bindings for record history.
  python: Add tests for record Python bindings
  Add documentation for new instruction record Python bindings.

 gdb/Makefile.in                               |   4 +
 gdb/NEWS                                      |   4 +
 gdb/btrace.c                                  | 163 +++--
 gdb/btrace.h                                  |  21 +-
 gdb/doc/python.texi                           | 237 ++++++
 gdb/python/py-btrace.c                        | 994 ++++++++++++++++++++++++++
 gdb/python/py-btrace.h                        |  32 +
 gdb/python/py-record.c                        | 257 +++++++
 gdb/python/py-record.h                        |  57 ++
 gdb/python/python-internal.h                  |   7 +
 gdb/python/python.c                           |  14 +
 gdb/record-btrace.c                           | 131 ++--
 gdb/record-full.c                             |  20 +
 gdb/record.c                                  |  28 +
 gdb/record.h                                  |   5 +
 gdb/target-debug.h                            |   2 +
 gdb/target-delegates.c                        |  33 +
 gdb/target.c                                  |   7 +
 gdb/target.h                                  |  10 +
 gdb/testsuite/gdb.python/py-record-btrace.c   |  48 ++
 gdb/testsuite/gdb.python/py-record-btrace.exp | 160 +++++
 21 files changed, 2096 insertions(+), 138 deletions(-)
 create mode 100644 gdb/python/py-btrace.c
 create mode 100644 gdb/python/py-btrace.h
 create mode 100644 gdb/python/py-record.c
 create mode 100644 gdb/python/py-record.h
 create mode 100644 gdb/testsuite/gdb.python/py-record-btrace.c
 create mode 100644 gdb/testsuite/gdb.python/py-record-btrace.exp

-- 
2.7.4


^ permalink raw reply	[flat|nested] 20+ messages in thread
* Re: [PATCH v3 4/8] Add record_start function.
@ 2016-11-30 23:50 Doug Evans
  0 siblings, 0 replies; 20+ messages in thread
From: Doug Evans @ 2016-11-30 23:50 UTC (permalink / raw)
  To: Tim Wiederhake; +Cc: gdb-patches, palves, markus.t.metzger

Tim Wiederhake writes:
  > 2016-11-21  Tim Wiederhake  <tim.wiederhake@intel.com>
  >
  > gdb/ChangeLog
  >
  > 	* record.h (record_start): New export.
  > 	* record.c (record_start): New function.
  >
  >
  > ---
  >  gdb/record.c | 28 ++++++++++++++++++++++++++++
  >  gdb/record.h |  5 +++++
  >  2 files changed, 33 insertions(+)
  >
  > diff --git a/gdb/record.c b/gdb/record.c
  > index 34ebd1b..6df8ba1 100644
  > --- a/gdb/record.c
  > +++ b/gdb/record.c
  > @@ -93,6 +93,34 @@ record_preopen (void)
  >
  >  /* See record.h.  */
  >
  > +void
  > +record_start (const char *method, const char *format, int from_tty)
  > +{
  > +  if (method == NULL)
  > +    {
  > +      if (format == NULL)
  > +	return execute_command ("record", from_tty);
  > +    }
  > +  else if (strcmp (method, "full") == 0)
  > +    {
  > +      if (format == NULL)
  > +	return execute_command ("record full", from_tty);
  > +    }
  > +  else if (strcmp (method, "btrace") == 0)
  > +    {
  > +      if (format == NULL)
  > +	return execute_command ("record btrace", from_tty);
  > +      if (strcmp (format, "bts") == 0)
  > +	return execute_command ("record btrace bts", from_tty);
  > +      if (strcmp (format, "pt") == 0)
  > +	return execute_command ("record btrace pt", from_tty);
  > +    }
  > +
  > +  error (_("Invalid argument."));
  > +}
  > +
  > +/* See record.h.  */
  > +

I'm guessing this is essentially implementing a library API on top of GDB's  
CLI.
Yikes. Maybe things will be clearer as I read the rest of the patches.

I'd mention in the function comment that this can throw gdb errors.

  >  int
  >  record_read_memory (struct gdbarch *gdbarch,
  >  		    CORE_ADDR memaddr, gdb_byte *myaddr,
  > diff --git a/gdb/record.h b/gdb/record.h
  > index 84440c64..eb091ce 100644
  > --- a/gdb/record.h
  > +++ b/gdb/record.h
  > @@ -91,4 +91,9 @@ extern struct target_ops *find_record_target (void);
  >     it does anything.  */
  >  extern void record_preopen (void);
  >
  > +/* Internal function that starts recording with the given METHOD and  
FORMAT.
  > +   NULL means default method or format.  */
  > +extern void record_start (const char *method, const char *format,
  > +			  int from_tty);
  > +
  >  #endif /* _RECORD_H_ */
  > --
  > 2.7.4
  >


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

end of thread, other threads:[~2016-11-30 23:50 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-21 15:49 [PATCH v3 0/8] Python bindings for btrace recordings Tim Wiederhake
2016-11-21 15:49 ` [PATCH v3 7/8] python: Add tests for record Python bindings Tim Wiederhake
2016-11-29 15:48   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 4/8] Add record_start function Tim Wiederhake
2016-11-29 15:47   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 3/8] btrace: Use binary search to find instruction Tim Wiederhake
2016-11-29 15:47   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 1/8] btrace: Count gaps as one instruction explicitly Tim Wiederhake
2016-11-29 15:47   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 5/8] python: Create Python bindings for record history Tim Wiederhake
2016-11-29 15:48   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 8/8] Add documentation for new instruction record Python bindings Tim Wiederhake
2016-11-29 15:48   ` Metzger, Markus T
2016-11-29 17:32     ` Eli Zaretskii
2016-11-21 15:49 ` [PATCH v3 2/8] btrace: Export btrace_decode_error function Tim Wiederhake
2016-11-29 15:47   ` Metzger, Markus T
2016-11-21 15:49 ` [PATCH v3 6/8] python: Implement btrace Python bindings for record history Tim Wiederhake
2016-11-29 15:48   ` Metzger, Markus T
2016-11-29 15:49 ` [PATCH v3 0/8] Python bindings for btrace recordings Metzger, Markus T
2016-11-30 23:50 [PATCH v3 4/8] Add record_start function Doug Evans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox