From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 103718 invoked by alias); 21 Mar 2018 21:25:39 -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 103685 invoked by uid 89); 21 Mar 2018 21:25:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.2 spammy=VAR, Simon, Marchi, marchi X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 21 Mar 2018 21:25:35 +0000 Received: from ESESSHC008.ericsson.se (Unknown_Domain [153.88.183.42]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 69.52.25122.CCDC2BA5; Wed, 21 Mar 2018 22:25:33 +0100 (CET) Received: from ESESBMB504.ericsson.se (153.88.183.171) by ESESSHC008.ericsson.se (153.88.183.42) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 21 Mar 2018 22:25:32 +0100 Received: from ESESBMB502.ericsson.se (153.88.183.169) by ESESBMB504.ericsson.se (153.88.183.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26; Wed, 21 Mar 2018 22:25:32 +0100 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB502.ericsson.se (153.88.183.169) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.26 via Frontend Transport; Wed, 21 Mar 2018 22:25:32 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ericsson.se (192.176.1.80) by SN6PR1501MB2014.namprd15.prod.outlook.com (2603:10b6:805:d::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Wed, 21 Mar 2018 21:25:26 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 1/3] Use std::vector in uploaded_tp Date: Wed, 21 Mar 2018 21:25:00 -0000 Message-ID: <1521667509-303-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: HE1PR0902CA0011.eurprd09.prod.outlook.com (2603:10a6:3:e5::21) To SN6PR1501MB2014.namprd15.prod.outlook.com (2603:10b6:805:d::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6ec00720-8cf0-496b-83a0-08d58f724432 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:SN6PR1501MB2014; X-Microsoft-Exchange-Diagnostics: 1;SN6PR1501MB2014;3:Y6ie2beeaNOo8gGMPWBfga68ZmFsJvLVBQi3kIXTiprt08prIDM/WPFaaIUI5GnUUX2WNaRsthzkX5jl9VP7BAbyHxn2p60dk6YRfUY5QwaOLvpOvwlo5VRoNikHWRkpZvyPrcBekNk4N/5qZG149gUhyj2fr6SOREXUHXrQ+GFzmxy/PdOOFtiBRTeTVAkc79uLtNTC5OCwr8y1PCaxXpFCy+H8UAECSj3pe0vbND2/ZvHnuhZ8WaWFC6snOiuC;25:EPnA4GIg4QM+RXzb4QWPeU8XCykDcw+rNh7ai3mg6S7kNELByT85PoBB6y1Q4PJJ0qu9xixpT0swvlWt80J+CO+h4aJY4fSGoSgY+Fk86fcoDQYJxXXD5qzvU9pR+aUjTJ/TOwE3NMo37fHD7YNUru3ZWH7MnwTwomM4hSNSAho99+vOMxe9lPPkwGKpieVCwQERHFXgXt6Gz6c524C/ZNAwjuwBNw5fqzRkOShu0ysCNbtXO7Wl5UEd/v82VNzad4bn7ObQU+iFo6dK4BggHshPwRkcmd9ArzNOs80WJr0P/uUJb3p8VRmP8wurO/cU0XiIsXtpggwgXTl2p0xniQ==;31:DTu+IQidRsXo3N9IT0+V4bK5IcKiSDaGGVXHGOb85OySQDxrl7WzJLLJspnuQ+kz42clVKRiAiOyqUkjde6leXhS+9R1P9aKeGUnO41GcOiYhTOG9jh4gvyzf89EfC8ymMWbRuKsNaw0bnZ4nRBp88tCI3Je8nu6wMkB5uw2RdL/OW8guKkee5mo7GUmi3J/3zU2bXsnkAsCtXAQD+EByHRS2wb6KBo96eHNPDBlSjs= X-MS-TrafficTypeDiagnostic: SN6PR1501MB2014: X-Microsoft-Exchange-Diagnostics: 1;SN6PR1501MB2014;20:UeEc9Pm8eSUv/lvbZHCVeJBZZNcXSYvWCF3bnI7K0lxl2ls0FaRva9IbZqyRWVmPm04ZWRlfvCI3GJxWw1mHhBSg0I49NINI7DJC8Bh3pFUGoCJAapUPPbMLmHkVu/8wOtEX/83bPFeP0Tzus/v1cNa7dguOeVCPfw9sIT9EGGESgWJqkdBjomMNyyaMR3FlpoICs/1ux0F6Qq85BIwNx1pxMZ2QRijbRku5bnogxir955JZtmjHiCQwFT/Q+gxJDHA02Od5gIXitft3iz1nCbmyNLmzQ8gn/yFkTEHW7ktIsvrj9fPtmgqXvyemRjHO7m4H/5SyYlHtQfeN3M5S81RiHGcXrsPn9ljtcXHHbvPe5K4tABxjs0fxr+aCwRQwY238jRHYMpO0loBPlz1aXZ2xdqgJSNIEP3uHJrThkfKE0W8mJMNWVk5JZP090yqLyrp9D8Eva3WHsNz7kSUKDedUH2yqhPI4D9dH12q9xuKu50phoPDtO2QN2x+ks85F;4:gJkX8h5SDLB+k91kMSla381zqUc+HNpsr8EDGf30b+gKAu6CH7GwyATbMuW69Fzg/mQ0NHU9BOpM3t+O7liSOJNvSF4dceJUJrvOO0UYscyCq6n7EI9twhlO56BdOBcP32u4kK3lwEg9Ekb9n7v8qfh+ocZ9frv+lGK50yUhpSjbDPyimSVVy/xYryQYLAYSTskd1SMBiAjNebmSkHHkfQL0ONuaXgmgUeAOkqKXRYGc+B3JQtXuuRFnlMHcDwv9PpVJNkwXXnvU1oYwPfDN5A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231221)(944501327)(52105095)(93006095)(93001095)(3002001)(10201501046)(6041310)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(6072148)(201708071742011);SRVR:SN6PR1501MB2014;BCL:0;PCL:0;RULEID:;SRVR:SN6PR1501MB2014; X-Forefront-PRVS: 0618E4E7E1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(376002)(346002)(39860400002)(396003)(366004)(39380400002)(54534003)(199004)(189003)(36756003)(7736002)(81166006)(305945005)(53936002)(6486002)(6512007)(2351001)(2361001)(48376002)(575784001)(106356001)(86362001)(16586007)(6666003)(50466002)(81156014)(51416003)(5660300001)(97736004)(53416004)(8676002)(105586002)(52116002)(6916009)(6116002)(3846002)(50226002)(2906002)(69596002)(47776003)(8936002)(59450400001)(66066001)(6506007)(386003)(316002)(478600001)(186003)(68736007)(25786009)(4326008)(16526019)(26005);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR1501MB2014;H:elxacz23q12.ericsson.se;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN6PR1501MB2014;23:fTYUaCaFOano3WPeC1fR08CooPbN+ecIEzycnew?= =?us-ascii?Q?znYmlt1C4IZtP1kxllu4k8KZwIA8/FkM22+eWcOgJWfwIdvQL4aigYBc175s?= =?us-ascii?Q?s9ZVWb1/9rY4T+cPoZzbst0Osxq5Dw41E1VpFqt6KPnhklrWc5nmLjZG1MRM?= =?us-ascii?Q?187JbvpIau0RP8QgpVUDlPoOu7Z4JWVOWh1FoE8oJ4aaIeT/DiwCnYnCoMg0?= =?us-ascii?Q?FXv2daLFBFmGcLlDsZoLv1s2V3A9bA7YvPrCj6SUqDW5EuotMeLGT8vOjygb?= =?us-ascii?Q?CVhB/7KQnVX9mDYndMJev3F0rjiyedx+1AJGTQvexSrbmv+2Y02TtUTnY1Yz?= =?us-ascii?Q?kFywcUS4JkPqerAZxNL6kuNbkUkDtCFNjKIq7RlSywRV5vw/2l/ovPLFXTuP?= =?us-ascii?Q?0OEao6ATp1JQA8lF/GbFJGvWc9NyH0MKgFBQkS/C1l0x/OvAld2dFkOceTyo?= =?us-ascii?Q?ZqIeOeg+ngQ0OJQPJBYBwZxCu/OnqPTHQgntIcsiSnrzgk00rUl1gfsoyKKo?= =?us-ascii?Q?M/o3MA6d0GgB+C7d2pCHnKmUStNcKrtQ5J77Pq2JzfHu/z6C58zP9jN4rlNP?= =?us-ascii?Q?Lff0DtmJGz4vFNtwM++ed3Vs7f8U8ADGJ+B5r0fdOXlsQUmQHoj9TA2L4jRK?= =?us-ascii?Q?c+PSqWULLGd/wOWA0jY7yLkRsAEO2+I+l2Q/tX/yYI3tanZtE6ukBivTU62/?= =?us-ascii?Q?/RQxDYaPxdZTa9cvfN4PO29mowWxUn7gL7GLyoMFt8bpU22/ger3Mu+RbFFI?= =?us-ascii?Q?bfhxGkwvn95sYSEYNXRZsOf++RSewvX+BrRBuHhoh+G8c4CeK8Dh5eigEgpv?= =?us-ascii?Q?K3jBoOXocQNdnWLCakTzjJfS+q8tO3vVBNMBVLaPmLLkIjMUaOBqJ1StTzia?= =?us-ascii?Q?yBL1tRNU+LbQpnxULZAVvJShGt4BkenK7xExxea7XI2V8yZ4sdJv5PCTWNf/?= =?us-ascii?Q?Jz8fypDda12ebv+AzvQ4UXo6OO3QRHawcXnXupatfcspWT94eWBwwealRNPg?= =?us-ascii?Q?aqETYwD0EJiiBdjeNaUbNxvuym7w+D4Bek3xjVyvt+Qq8PZdX8a4F6wYZ0sO?= =?us-ascii?Q?ghIO+MSO1DWoSrnbcgX/g4UjIpJc+YgrUrQPKUH0/ZNnxZsPg4/i6Wh8Aj8U?= =?us-ascii?Q?2iO7ZENvr4RPdDHdEngotNLCfpwB329NZsqYwTPn1dCcM2GiA72YWTk+0JYB?= =?us-ascii?Q?Qzca2y6T/u8mpK5hCLSgu6rLCNqvl0VmkH8te?= X-Microsoft-Antispam-Message-Info: zCH/3wQTZOdrah+fxQrgzWWy6ehsAhbGEjRGGbdSyav800XxQ64osGmhc0ebtA3Ng5qdlo7pplcLxooQQm2JptVXAD9UKgl+vfsXuULtSLBfGocn/tAgxtJRqJzq88iWRcLFyCyH1yQeVO8grpvSYO+l8PmOQw81tuuKKDn7cviLMo1gjE+d0+7GOKWNLOwI X-Microsoft-Exchange-Diagnostics: 1;SN6PR1501MB2014;6:eNOtY5LVxBR+YefjMntovQNMiFvY6H5mVzrRAXzy7HEmC8VDO6gbzhF2IagEkUxlWVEOTxF4RDHWwNdg3DWphjyQxoUoLn3ddByaknxH5fTmeuhOgIzRTleXKhdB4txLVexZmzQMtLZCJPrV1YY6phoi7aVXXjUU2N1El94BGKOsWSQCnphYpN1gasBAkhkXMNXb+bHj4keexWV6oN4fttb6I3FjdAmYhVhBMoJZvS/atPzkzYiz9DZtmol4QKCZxLQxB22LcOeRww1Z5CoZBfzg3LXqawG0hhi97Ft7oQhwTCbODbssser7wLaQ6kWOrX3pdRWv5ouaLj0lKhUvobOPlZWK0EHjlrQy9auSCMg=;5:cyW2goWKCBFNbPKq6qYKOoGGkgP11jJ4VzzixGWnC3d4u3OmTmbOx2c4w4p8UG88k4DdvqDZIMBxDGeJ7OHh1W9jh5SB1SBIkxup4bGcdmrrvOLfnObkOyEPCeZAkWceXEE5Q7QvkqKH8FBzA29n7gtDtIOrwtl6AAnhdbRIzcM=;24:+uIvgV3W/FPvSrNJc0YmwyEIG02ftrmX61C+NV7SlJ1ptYSDz7yUn4NwggA7EPjFTk+hhKgDAfasBMwzmOd8TgYR3VQroH/dowxZCHjGBOE=;7:nHJRnV2U1+vHbPLjQc75A7p5TrrynwcLewyImnA20fMXwkQtsQeHU0xZlYBjwCaqNUwsUg+YdmE07+vXTqZ2A7verqKDT+uCGY4Um0ZP4Ka66awnDw4DUDgr6N8Z9X0Uq7BPCb3Y5i+mRjJk9bKeLvtPDFfAL6A7GUHYo3gVvrElhYAFgL8/iPD2BQc2XAoKJzW7cVWacPxzTilrW4XAy50KBKDWM5uq11TwbufKNtW6fBBq+HpcwkGuoUO0Rrde SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2018 21:25:26.4747 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6ec00720-8cf0-496b-83a0-08d58f724432 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR1501MB2014 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00392.txt.bz2 From: Simon Marchi This patch changes the VEC(char_ptr) fields in uploaded_tp to use std::vector. At first, I wanted to creep in more changes, like using std::string, but it was making the patch too big and less focused, so I decided to keep it to just that. It also looks like the strings in those vectors are never free'd. If so, we can fix that in another patch. gdb/ChangeLog: * tracepoint.h (struct uploaded_tp): Initialize fields. : Change type to std::vector. * tracepoint.c (get_uploaded_tp): Allocate with new. (free_uploaded_tps): Free with delete. (parse_tracepoint_definition): Adjust to std::vector change. * breakpoint.c (read_uploaded_action): Likewise. (create_tracepoint_from_upload): Likewise. * ctf.c (ctf_write_uploaded_tp): Likewise. (SET_ARRAY_FIELD): Likewise. * tracefile-tfile.c (tfile_write_uploaded_tp): Likewise. --- gdb/breakpoint.c | 16 +++++++++------- gdb/ctf.c | 18 ++++++++---------- gdb/tracefile-tfile.c | 8 +++----- gdb/tracepoint.c | 13 +++++-------- gdb/tracepoint.h | 32 ++++++++++++++++---------------- 5 files changed, 41 insertions(+), 46 deletions(-) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 85f2fd8..ca6d6f6 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -14754,11 +14754,13 @@ static int next_cmd; static char * read_uploaded_action (void) { - char *rslt; + char *rslt = nullptr; - VEC_iterate (char_ptr, this_utp->cmd_strings, next_cmd, rslt); - - next_cmd++; + if (next_cmd < this_utp->cmd_strings.size ()) + { + rslt = this_utp->cmd_strings[next_cmd]; + next_cmd++; + } return rslt; } @@ -14830,7 +14832,7 @@ create_tracepoint_from_upload (struct uploaded_tp *utp) special-purpose "reader" function and call the usual command line reader, then pass the result to the breakpoint command-setting function. */ - if (!VEC_empty (char_ptr, utp->cmd_strings)) + if (!utp->cmd_strings.empty ()) { command_line_up cmd_list; @@ -14841,8 +14843,8 @@ create_tracepoint_from_upload (struct uploaded_tp *utp) breakpoint_set_commands (tp, std::move (cmd_list)); } - else if (!VEC_empty (char_ptr, utp->actions) - || !VEC_empty (char_ptr, utp->step_actions)) + else if (!utp->actions.empty () + || !utp->step_actions.empty ()) warning (_("Uploaded tracepoint %d actions " "have no source form, ignoring them"), utp->number); diff --git a/gdb/ctf.c b/gdb/ctf.c index d589ed3..07ae93b 100644 --- a/gdb/ctf.c +++ b/gdb/ctf.c @@ -530,8 +530,6 @@ ctf_write_uploaded_tp (struct trace_file_writer *self, int64_t int64; uint32_t u32; const gdb_byte zero = 0; - int a; - char *act; /* Event Id. */ int32 = CTF_EVENT_ID_TP_DEF; @@ -569,15 +567,15 @@ ctf_write_uploaded_tp (struct trace_file_writer *self, ctf_save_write (&writer->tcs, &zero, 1); /* actions */ - u32 = VEC_length (char_ptr, tp->actions); + u32 = tp->actions.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->actions, a, act); ++a) + for (char *act : tp->actions) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); /* step_actions */ - u32 = VEC_length (char_ptr, tp->step_actions); + u32 = tp->step_actions.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->step_actions, a, act); ++a) + for (char *act : tp->step_actions) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); /* at_string */ @@ -593,9 +591,9 @@ ctf_write_uploaded_tp (struct trace_file_writer *self, ctf_save_write (&writer->tcs, &zero, 1); /* cmd_strings */ - u32 = VEC_length (char_ptr, tp->cmd_strings); + u32 = tp->cmd_strings.size (); ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4); - for (a = 0; VEC_iterate (char_ptr, tp->cmd_strings, a, act); ++a) + for (char *act : tp->cmd_strings) ctf_save_write (&writer->tcs, (gdb_byte *) act, strlen (act) + 1); } @@ -992,8 +990,8 @@ ctf_read_tsv (struct uploaded_tsv **uploaded_tsvs) const struct bt_definition *element \ = bt_ctf_get_index ((EVENT), def, i); \ \ - VEC_safe_push (char_ptr, (VAR)->ARRAY, \ - xstrdup (bt_ctf_get_string (element))); \ + (VAR)->ARRAY.push_back \ + (xstrdup (bt_ctf_get_string (element))); \ } \ } \ while (0) diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c index 4f0dc59..d7e9347 100644 --- a/gdb/tracefile-tfile.c +++ b/gdb/tracefile-tfile.c @@ -221,8 +221,6 @@ tfile_write_uploaded_tp (struct trace_file_writer *self, { struct tfile_trace_file_writer *writer = (struct tfile_trace_file_writer *) self; - int a; - char *act; char buf[MAX_TRACE_UPLOAD]; fprintf (writer->fp, "tp T%x:%s:%c:%x:%x", @@ -235,10 +233,10 @@ tfile_write_uploaded_tp (struct trace_file_writer *self, ":X%x,%s", (unsigned int) strlen (utp->cond) / 2, utp->cond); fprintf (writer->fp, "\n"); - for (a = 0; VEC_iterate (char_ptr, utp->actions, a, act); ++a) + for (char *act : utp->actions) fprintf (writer->fp, "tp A%x:%s:%s\n", utp->number, phex_nz (utp->addr, sizeof (utp->addr)), act); - for (a = 0; VEC_iterate (char_ptr, utp->step_actions, a, act); ++a) + for (char *act : utp->step_actions) fprintf (writer->fp, "tp S%x:%s:%s\n", utp->number, phex_nz (utp->addr, sizeof (utp->addr)), act); if (utp->at_string) @@ -254,7 +252,7 @@ tfile_write_uploaded_tp (struct trace_file_writer *self, buf, MAX_TRACE_UPLOAD); fprintf (writer->fp, "tp Z%s\n", buf); } - for (a = 0; VEC_iterate (char_ptr, utp->cmd_strings, a, act); ++a) + for (char *act : utp->cmd_strings) { encode_source_string (utp->number, utp->addr, "cmd", act, buf, MAX_TRACE_UPLOAD); diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 30fe206..2ebbdfc 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -3062,12 +3062,9 @@ get_uploaded_tp (int num, ULONGEST addr, struct uploaded_tp **utpp) if (utp->number == num && utp->addr == addr) return utp; - utp = XCNEW (struct uploaded_tp); + utp = new uploaded_tp; utp->number = num; utp->addr = addr; - utp->actions = NULL; - utp->step_actions = NULL; - utp->cmd_strings = NULL; utp->next = *utpp; *utpp = utp; @@ -3082,7 +3079,7 @@ free_uploaded_tps (struct uploaded_tp **utpp) while (*utpp) { next_one = (*utpp)->next; - xfree (*utpp); + delete *utpp; *utpp = next_one; } } @@ -3599,12 +3596,12 @@ parse_tracepoint_definition (const char *line, struct uploaded_tp **utpp) else if (piece == 'A') { utp = get_uploaded_tp (num, addr, utpp); - VEC_safe_push (char_ptr, utp->actions, xstrdup (p)); + utp->actions.push_back (xstrdup (p)); } else if (piece == 'S') { utp = get_uploaded_tp (num, addr, utpp); - VEC_safe_push (char_ptr, utp->step_actions, xstrdup (p)); + utp->step_actions.push_back (xstrdup (p)); } else if (piece == 'Z') { @@ -3628,7 +3625,7 @@ parse_tracepoint_definition (const char *line, struct uploaded_tp **utpp) else if (startswith (srctype, "cond:")) utp->cond_string = xstrdup (buf); else if (startswith (srctype, "cmd:")) - VEC_safe_push (char_ptr, utp->cmd_strings, xstrdup (buf)); + utp->cmd_strings.push_back (xstrdup (buf)); } else if (piece == 'V') { diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h index 9f4596e..ff2e2a4 100644 --- a/gdb/tracepoint.h +++ b/gdb/tracepoint.h @@ -165,38 +165,38 @@ extern const char *stop_reason_names[]; struct uploaded_tp { - int number; - enum bptype type; - ULONGEST addr; - int enabled; - int step; - int pass; - int orig_size; + int number = 0; + enum bptype type = bp_none; + ULONGEST addr = 0; + int enabled = 0; + int step = 0; + int pass = 0; + int orig_size = 0; /* String that is the encoded form of the tracepoint's condition. */ - char *cond; + char *cond = nullptr; /* Vectors of strings that are the encoded forms of a tracepoint's actions. */ - VEC(char_ptr) *actions; - VEC(char_ptr) *step_actions; + std::vector actions; + std::vector step_actions; /* The original string defining the location of the tracepoint. */ - char *at_string; + char *at_string = nullptr; /* The original string defining the tracepoint's condition. */ - char *cond_string; + char *cond_string = nullptr; /* List of original strings defining the tracepoint's actions. */ - VEC(char_ptr) *cmd_strings; + std::vector cmd_strings; /* The tracepoint's current hit count. */ - int hit_count; + int hit_count = 0; /* The tracepoint's current traceframe usage. */ - ULONGEST traceframe_usage; + ULONGEST traceframe_usage = 0; - struct uploaded_tp *next; + struct uploaded_tp *next = nullptr; }; /* Struct recording info about trace state variables on the target. */ -- 2.7.4