This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/3] Convert probe interfaces to C++ (and perform some cleanups)
- From: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: GDB Patches <gdb-patches at sourceware dot org>
- Cc: Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Mon, 13 Nov 2017 12:58:58 -0500
- Subject: [PATCH 0/3] Convert probe interfaces to C++ (and perform some cleanups)
- Authentication-results: sourceware.org; auth=none
This patch series performs the conversion of the probe interfaces
(generic, stap and dtrace) to C++, along with a few cleanups here and
there to make the code conform better to our standards.
This series needs to be committed/tested as one single patch, because
of inter-dependencies. However, in order to facilitate the review
process, I decided to split things into logical units.
The main changes are the conversion of 'struct probe' to 'class
probe', and 'struct probe_ops' to 'class static_probe_ops'. Almost
everything else in the patches are adjustments related to these
modifications.
It's important to say that 'class probe' contains the majority of the
methods that were previously living inside 'struct probe_ops'.
However, some methods are special in the sense the they don't act on a
specific probe object, but generically on a probe type (like a
factory). For that reason the 'class static_probe_ops' had to be
created.
Most methods in 'class probe' are pure virtual and need to be defined
by the probe backend (stap or dtrace, for now). Other methods (e.g.,
the 'enable' method) are virtual but non-pure and have a default,
dummy version implemented on 'class probe' itself, because the concept
of enabling a probe is not common to all types of probes.
I've also taken the opportunity to convert a few uses of "VEC" to
"std::vector", and to remove annoying spurious newlines from some
places.
The whole patch has been tested on BuildBot, without regressions.