From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12393 invoked by alias); 16 Nov 2017 04:37:55 -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 12383 invoked by uid 89); 16 Nov 2017 04:37:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=BAYES_00,KB_WAM_FROM_NAME_SINGLEWORD,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 spammy=Almost, act, opportunity, living 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; Thu, 16 Nov 2017 04:37:54 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 38614356C4; Thu, 16 Nov 2017 04:37:53 +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 E58D65D9C9; Thu, 16 Nov 2017 04:37:52 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Simon Marchi Subject: [PATCH v2 0/3] Convert probe interfaces to C++ (and perform some cleanups) Date: Thu, 16 Nov 2017 04:37:00 -0000 Message-Id: <20171116043734.10137-1-sergiodj@redhat.com> In-Reply-To: <20171113175901.25367-1-sergiodj@redhat.com> References: <20171113175901.25367-1-sergiodj@redhat.com> X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00295.txt.bz2 [ The changes for each patch are described at the top of each message. ] 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. However, it is important to mention that I could not test the DTrace part of the patch because the test framework used to test it is not working; see .