From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 80098 invoked by alias); 13 Nov 2017 17:59:37 -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 79478 invoked by uid 89); 13 Nov 2017 17:59:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=act, opportunity, living, our X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 13 Nov 2017 17:59:35 +0000 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D3A757EA9E for ; Mon, 13 Nov 2017 17:59:34 +0000 (UTC) Received: from psique.yyz.redhat.com (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 41FDE86450; Mon, 13 Nov 2017 17:59:15 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Sergio Durigan Junior Subject: [PATCH 0/3] Convert probe interfaces to C++ (and perform some cleanups) Date: Mon, 13 Nov 2017 17:59:00 -0000 Message-Id: <20171113175901.25367-1-sergiodj@redhat.com> X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00241.txt.bz2 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.