From: "Jose E. Marchesi" <jose.marchesi@oracle.com>
To: gdb@sourceware.org
Subject: [PATCH V3 0/9] Add support for DTrace USDT probes to gdb
Date: Tue, 28 Oct 2014 13:44:00 -0000 [thread overview]
Message-ID: <1414504151-31155-1-git-send-email-jose.marchesi@oracle.com> (raw)
[Changes from V2:
- (this time for real) simplified the phrasing in the
documentation about that systemtap probes do not support "the notion
of" disabling or enabling a probe. Now it just says that stap
probes cannot be disabled.
- Some other typos and improvements in the docs spotted by Eli.
- Fixed two implicit comparisons in gdb/probe.c.
- The args_expr_built field of the struct dtrace_probe is now an
unsigned integer.
- Comments documenting enum entries and struct fields relocated to
be on top of each item.
- Added a new column to the output of `info probes' that says the
type of the probe: either stap or dtrace.
- Use read_code instead of read_memory when reading code to avoid
bypassing the code cache.
- Avoid duplication of instruction sequences in amd64-linux-tdep.c.
- Make the amd64_dtrace_* functions in amd64-linux-tdep.c static,
since they are not used anywhere else.
- dtrace-probe.c does not implement dummy versions of the
set_semaphore and clear_semaphore anymore, as per the recent patch
from Sergio.
- The DOF reader in dtrace-probe.c now checks that the encoding mark
in the DOF header has a valid value.
- Use remote_exec instead of an "exec ..." to invoke tools on the host
in the testcases.
- Do not generate files in the ${srcdir} in the testcases.
- The generation of programs with DTrace static probes has been
factorized out in a new function in testsuite/lib/dtrace.exp:
dtrace_build_usdt_test_program.
- A script called `pdtrace' has been added to the patch series. It is
a test tool that implements a subset of the functionality provided
by the proprietary dtrace command: the generation of an ELF file
containing an embedded dtrace program (equivalent to dtrace -G) and
the generation of a header file with definitions for static probes
(equivalent to dtrace -h). This allows to generate DTrace static
probes without having to use the user-level DTrace components. The
generated objects are 100% compatible with DTrace and can be traced
by the dtrace kernel module like if they were generated by dtrace.
dtrace_build_usdt_test_program will first try to use the real dtrace
program and, if it is not found in the host system, will use pdtrace
instead.]
This patch series introduces support in GDB for a new type of probe:
DTrace USDT probes.
The first three patches do some changes to the existing probe.[ch]
code, fixing some minor problems associated to support several probe
types, having several probes of different types defined in the same
object and supporting the notion of enabling and disabling probes.
The rest of the patches are the implementation of the new probe type,
including target support for x86_64 targets, a testsuite and
documentation.
Tested on x86_64-*-linux-gnu.
No visible regressions.
Jose E. Marchesi (9):
Adapt `info probes' to support printing probes of different types.
Move `compute_probe_arg' and `compile_probe_arg' to probe.c
New commands `enable probe' and `disable probe'.
New gdbarch functions: dtrace_parse_probe_argument,
dtrace_probe_is_enabled, dtrace_enable_probe, dtrace_disable_probe.
New probe type: DTrace USDT probes.
Support for DTrace USDT probes in x86_64 targets.
Simple testsuite for DTrace USDT probes.
Documentation for DTrace USDT probes.
Announce the DTrace USDT probes support in NEWS.
gdb/ChangeLog | 112 ++++
gdb/Makefile.in | 3 +-
gdb/NEWS | 3 +
gdb/amd64-linux-tdep.c | 148 +++++
gdb/breakpoint.c | 3 +-
gdb/configure | 2 +-
gdb/configure.ac | 2 +-
gdb/doc/ChangeLog | 13 +
gdb/doc/gdb.texinfo | 85 ++-
gdb/dtrace-probe.c | 909 +++++++++++++++++++++++++++
gdb/gdbarch.c | 128 ++++
gdb/gdbarch.h | 36 ++
gdb/gdbarch.sh | 16 +
gdb/probe.c | 338 +++++++++-
gdb/probe.h | 20 +-
gdb/stap-probe.c | 123 +---
gdb/testsuite/ChangeLog | 14 +
gdb/testsuite/gdb.base/dtrace-probe.c | 38 ++
gdb/testsuite/gdb.base/dtrace-probe.d | 21 +
gdb/testsuite/gdb.base/dtrace-probe.exp | 106 ++++
gdb/testsuite/gdb.base/stap-probe.exp | 2 +-
gdb/testsuite/lib/dtrace.exp | 71 +++
gdb/testsuite/lib/pdtrace | 1017 +++++++++++++++++++++++++++++++
23 files changed, 3051 insertions(+), 159 deletions(-)
create mode 100644 gdb/dtrace-probe.c
create mode 100644 gdb/testsuite/gdb.base/dtrace-probe.c
create mode 100644 gdb/testsuite/gdb.base/dtrace-probe.d
create mode 100644 gdb/testsuite/gdb.base/dtrace-probe.exp
create mode 100644 gdb/testsuite/lib/dtrace.exp
create mode 100755 gdb/testsuite/lib/pdtrace
--
1.7.10.4
next reply other threads:[~2014-10-28 13:44 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-28 13:44 Jose E. Marchesi [this message]
2014-10-28 13:44 ` [PATCH V3 9/9] Announce the DTrace USDT probes support in NEWS Jose E. Marchesi
2014-10-28 16:13 ` Eli Zaretskii
2014-10-28 13:44 ` [PATCH V3 5/9] New probe type: DTrace USDT probes Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 7/9] Simple testsuite for " Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 6/9] Support for DTrace USDT probes in x86_64 targets Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 3/9] New commands `enable probe' and `disable probe' Jose E. Marchesi
2014-10-28 16:08 ` Eli Zaretskii
2014-10-28 13:44 ` [PATCH V3 1/9] Adapt `info probes' to support printing probes of different types Jose E. Marchesi
2014-10-28 14:06 ` Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 2/9] Move `compute_probe_arg' and `compile_probe_arg' to probe.c Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 4/9] New gdbarch functions: dtrace_parse_probe_argument, dtrace_probe_is_enabled, dtrace_enable_probe, dtrace_disable_probe Jose E. Marchesi
2014-10-28 13:44 ` [PATCH V3 8/9] Documentation for DTrace USDT probes Jose E. Marchesi
2014-10-28 16:13 ` Eli Zaretskii
2015-02-04 16:21 ` Ed Maste
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1414504151-31155-1-git-send-email-jose.marchesi@oracle.com \
--to=jose.marchesi@oracle.com \
--cc=gdb@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox