From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AUS01-SY4-obe.outbound.protection.outlook.com (mail-sy4aus01olkn2153.outbound.protection.outlook.com [40.92.62.153]) by sourceware.org (Postfix) with ESMTPS id 88CB33858C83 for ; Thu, 14 Apr 2022 05:58:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 88CB33858C83 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JkhqeeZ1BAlBD9fJUlgHAprDLDsUnYszK1LND1EM+NqJ5TLhP05q9SL87CAdpqqUKl3LHioGNiGxTimV5CO694UTbA4+gERjTghpXjrH8D06hHwdlIhvsH9OzNfWiu/WkQHvvBW6mdp4fQgnqnXNvjdOxQcfmGVLHxTTcp+AtB+zlGEH6oH+4mvm5cJ/tpdQMBF/ZZMzIj/WwHM0HnHcAip9bUimTw/X3jSlUoReIJWi7kMlYW7v4WR2Ih7Wt1y94CnlSMLEcgghRRYFUzRs4hGh5yVXl1kDF5Z6j9l4xv39IKc7b67iRC0E5WnkSpfKD+XvPA/gTU1ae4zM6pDUfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x8IBL2znWKSAO3IOR/p1OsBTJJGma2UBRM4AhEuc4Ho=; b=i09Gie/HV0iwRBD9kIXfDxB1gQwLmTAVUeN+CzQbZhPniQcasbKUgzB2yShExxzB+yG0UFYUmPsKN9pWgVDGcsMPP3Ub7P09DkIxSgUeFUG4YMR3iQ16Ugt8FS3rngG21w6ccZ4ObcbHWWgBZbbCpiHzL5M7Cb8FY4gbWZpTOEB/Hk+Nzts9gQCKzRcNHDpA+QeSs5+/xH+F3QUvWAu+JhiNpXc7+auNOmiDv8jT3Bia5ICcsZ7mYMLDkdBBrHBgcpDH/3LMichK14/L1g5hN0w07DCUVTWCozPJ1KuLMq1Ty+/MBLE3qtEF7t6EPCNgyLI8nMIJOWLicoCfb4nTDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:71::10) by SYCP282MB0287.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:8d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.20; Thu, 14 Apr 2022 05:58:46 +0000 Received: from MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM ([fe80::5804:c2bb:bc94:3cec]) by MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM ([fe80::5804:c2bb:bc94:3cec%6]) with mapi id 15.20.5144.030; Thu, 14 Apr 2022 05:58:46 +0000 Message-ID: Subject: [PING^2][PATCH v2] gdb: fix using clear command to delete non-user breakpoints(PR cli/7161) From: Enze Li To: gdb-patches@sourceware.org Date: Thu, 14 Apr 2022 13:58:26 +0800 In-Reply-To: References: <20220314122406.24889-1-lienze2010@hotmail.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.36.5-0ubuntu1 Content-Transfer-Encoding: 7bit X-TMN: [XGnezOwcCzs0IHurQkwr8Sojg21BWSVq] X-ClientProxiedBy: HK2PR02CA0138.apcprd02.prod.outlook.com (2603:1096:202:16::22) To MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:71::10) X-Microsoft-Original-Message-ID: <6705520b67825226287ec663067261ab58241971.camel@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ff4c8db8-0fcc-44f7-83d1-08da1ddbd67e X-MS-TrafficTypeDiagnostic: SYCP282MB0287:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 02WUqWRdF4GGR1P0xz5ilfgfBLXI2ga0BOYHhxAy/sf3nvLzPh90MjCnSxrjDizaW+6gczt29i2Xb94IRZW/TE46KL2a0VnZ4imPhDFK23fknhEvphn55UM5MqWGxEHoYoCaGWT/QjTgcDq15vMCLohHszp6wP9Suc90dP/GedyTtSmzheMJvpJFpvMTDfg2+BmX3jR21ltBQ+aCzFsn0h9Lj2RVfsUkwrYZ9j/bm0YFDCge6FEwOqz0awvlVUNWg1IZuC58JbCWto8ejYIFi6zigtzpsDlm9IH6opDTmsfat9G1EuitSDd/XRddROO9EkmY7jfqZHgdwTSDGhMvEMSunaqImh2N9kuKyo7woKeVsE7RXmNSr4NekNBtCs4dgNBbY8X5EI4gRGVSdF6eml5+I0adcHJiW39BeF1KcMzcB70fogjAQT2fL9Alf/0sN5QAkm1S6u8Ia1mJrCNYRl3lQF2sPmXYBI6ycSsnb1sOSaQjsw7MG/ZFRDESDrNDhdnNpqmuT4qTg2Njauz7bvSALYonsbpZ1HynWkm7FuDitDAY94j+J70gVJsNCI8Y50R6CWnAIywjOBy9lf5bGAN1t7QjtHiKEHfZgBv7wPhmlE39do2muYaI2pXiGRTV X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WnZNQWoxT0hJSzJIV0ErbEJ1WDRscVFpSHZKMktQam4vVXJVdVRtTExLT2NP?= =?utf-8?B?Z3k0RStpT3NEM0lTam9nL0ZtMXdhUHcvSWpQMjNoR01lQkNyS21MTHFzUXN0?= =?utf-8?B?YWg0NnBEaGhQY094VUFxR0p1RkZWdkg1T0M3eG5aaThwanREL3daRTNUalp4?= =?utf-8?B?UFhWeEFIaWYyUWszQldDakRPdk1xNzBPTUo4b1JSdS9mbHl5cnJHZ0VEQWZN?= =?utf-8?B?amprUlVjblVXQWxhRHhBYVVIMGpiZVEyNDhSUVNjRTZaS0t3MGVsTGxyWXgz?= =?utf-8?B?YTlidGFVblI0MzlWc0ZMTzdBMllvRU5uNTkxdFRuS1hTMWhnT0tqMVh1Vkc5?= =?utf-8?B?NU9HYjN2OHd0ZDVCdXgrRmNld3l2MVpaa3kwQkhTbnpQUDZSWGtTbVF6M2J4?= =?utf-8?B?TG5Gb3pqL2F5dXh6Y3NYbFpsTDVHUTlScDY1ck94Y296SFVZRW5tUG5GKzBp?= =?utf-8?B?OXFSMzBnVzQ4cWpaZlpiaXMrZWxxVnd6RjZpYTRaUVIwZ3FicGtjSWRRSHRj?= =?utf-8?B?QlhGeTMzVDQvQ05hTzloV2FIMjBiVGVWNHFNRzZqQ2RKL0FRZG1mYjZLTkJ4?= =?utf-8?B?MGxGdmJrYWtMRHdUR3NTRmEya21zbG9jTXV6WGlNVmpBSXNVQXBieVdhT1Qx?= =?utf-8?B?RGN3QVV6MXpFV1dabGZrMWJ4czJnVTM2L3cwblJZNGN3YlVXbFN0Rk4zSlhl?= =?utf-8?B?cHZadWt5WFhoMGZEWGNsTTNsdGdJM09ycmNISWlqb3Zycjc0emtxTWRUcXJa?= =?utf-8?B?ellIYUpCbVFMTTM5UzIrWjNXQTlkSjdMRWswMW8vWlpqWE9JTk9ydEhnQkFk?= =?utf-8?B?ZW1CbnlMU3FUeWdZM3VxelFKTFhQcU40VllRb25oUmUrZlBVYTVvdHQ0RDVt?= =?utf-8?B?bUdVRWFlTmc2TEluV2tCc1ZOb3Z3RithRmoxMElQVGVsWW9iL3cvWmFFMnFy?= =?utf-8?B?ZGdXdFllOEZ3UWtJekFQTWtNVkgzQmRPMGJUWFZSUHpISlhtRU1uUFlRYjlk?= =?utf-8?B?azV4WjF4Qjc5Tit3TVhLdW11azNRcFp6YkFQMW5jOGdNbzN3eVdMamwxN0Rn?= =?utf-8?B?M3ArV0JKZ2Q3VmloeXlSKzZQc05qbjRIUzFUbXZzN1BhRFgyYTh5ZGRPYlJs?= =?utf-8?B?cWFCVU11TlZCMGRyeUNxbVZTdzVrQjIxaTJXSklYYjJXRWQ1WU9VMHJWOC9F?= =?utf-8?B?ZFZPaHp1Ni9yTnUyRUgwL0pQMUVzNU9hWjJreDY5RVZISmcycEJPQXRHRzB6?= =?utf-8?B?SFFONktuNnJDd05NSDZyM3JCR05pWlpVNDlHNko1MEFxUitCMndJcVdVdWtP?= =?utf-8?B?UjYwQVFyYldHdFF2WGhLRWdYd1FOcmJ5dmtTRDJiRWxwNjBxamM1M2VEMUpt?= =?utf-8?B?d2ZkY04yaDZzQ0U3ZGdiWE9yZStTK3FRVVZIbmMzc1VrTDR5QTAybkN4RS8z?= =?utf-8?B?ckVTOHJjRlhjRmtHc01MWXNmUXk5N0FCT0RFK0VFckhQZWtHUGZ0Y0NmbWRl?= =?utf-8?B?TTZWekY1eG1hQnMvNmxnUnJsRmV4TU81L3BMcGI5UmZZVldVa25xeE9vQ3ox?= =?utf-8?B?Z2YrZjF4VFpvSG0wTkoxOC9FZXNDYmp3K1ROY293QW1jSlpyRDhQb0xoaXlh?= =?utf-8?B?NUVSWnQ3SnBxcEM1aUo4VkViVXRzWXp0RUxDWkFnVG13aUczcHZodXRHWU9k?= =?utf-8?B?d0pkYzFiVDMvZHRlWXdrMUpOZG9Xd3UyTTl6bXVSN2t4UXdUV2lzRTJzdUdO?= =?utf-8?B?cVlpOFo5bTluNlp5WlQ1WUcxSVlpQ2VTYlgzOU9hNmU1aHMxWU1aZjNyTWx1?= =?utf-8?B?ZlB5OUxyRWpwTmN4TGFTY2s2MXRHdUNIY2hNL01DVXdqOE5UTHdmMU1JZWVL?= =?utf-8?B?bENqcWQzSXJsZkU1d2U0aE43SkliZ3lDRGJRVVhhMXZRMk9kNUx1dm40SzEy?= =?utf-8?Q?aRROtRLEdIk=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-746f3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: ff4c8db8-0fcc-44f7-83d1-08da1ddbd67e X-MS-Exchange-CrossTenant-AuthSource: MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2022 05:58:46.2661 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SYCP282MB0287 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2022 05:58:52 -0000 Ping^2. :-) Thanks, Enze On Thu, 2022-03-17 at 22:24 +0800, Enze Li via Gdb-patches wrote: > The clear command shouldn't delete momentary and internal > breakpoints, > nor internal breakpoints created via Python's gdb.Breakpoint. > > This patch fixes this issue and adds a testcase. > > Regression tested on x86_64 openSUSE Tumbleweed. > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7161 > --- > gdb/breakpoint.c | 3 +- > gdb/testsuite/gdb.base/pr7161.c | 25 +++++++++++++ > gdb/testsuite/gdb.base/pr7161.exp | 59 > +++++++++++++++++++++++++++++++ > 3 files changed, 86 insertions(+), 1 deletion(-) > create mode 100644 gdb/testsuite/gdb.base/pr7161.c > create mode 100644 gdb/testsuite/gdb.base/pr7161.exp > > diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c > index a3cfeea6989..ee1ce793593 100644 > --- a/gdb/breakpoint.c > +++ b/gdb/breakpoint.c > @@ -10979,7 +10979,8 @@ clear_command (const char *arg, int from_tty) > { > int match = 0; > /* Are we going to delete b? */ > - if (b->type != bp_none && !is_watchpoint (b)) > + if (b->type != bp_none && !is_watchpoint (b) > + && user_breakpoint_p (b)) > { > for (bp_location *loc : b->locations ()) > { > diff --git a/gdb/testsuite/gdb.base/pr7161.c > b/gdb/testsuite/gdb.base/pr7161.c > new file mode 100644 > index 00000000000..b5a3a8ccb30 > --- /dev/null > +++ b/gdb/testsuite/gdb.base/pr7161.c > @@ -0,0 +1,25 @@ > +/* This test is part of GDB, the GNU debugger. > + > + Copyright 2022 Free Software Foundation, Inc. > + > + This program is free software; you can redistribute it and/or > modify > + it under the terms of the GNU General Public License as published > by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see < > http://www.gnu.org/licenses/>;. */ > + > +#include > + > +int > +main () > +{ > + printf("Hello,world!\n"); /* break here */ > + return 0; > +} > diff --git a/gdb/testsuite/gdb.base/pr7161.exp > b/gdb/testsuite/gdb.base/pr7161.exp > new file mode 100644 > index 00000000000..533e61d1795 > --- /dev/null > +++ b/gdb/testsuite/gdb.base/pr7161.exp > @@ -0,0 +1,59 @@ > +# Copyright 2022 Free Software Foundation, Inc. > + > +# This program is free software; you can redistribute it and/or > modify > +# it under the terms of the GNU General Public License as published > by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see < > http://www.gnu.org/licenses/>;. > + > +proc get_maint_info_bp { var } { > + global expect_out > + global gdb_prompt > + > + gdb_test_multiple "maint info break -1" "find address of > internal bp $var" { > + -re ".*(0x\[0-9a-f\]+).*$gdb_prompt $" { > + return $expect_out(1,string) > + } > + timeout { > + perror "couldn't find address of $var" > + return "" > + } > + } > + return "" > +} > + > +standard_testfile .c > + > +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" > executable {debug}] != "" } { > + untested "failed to compile" > + return -1 > +} > + > +# Start with a fresh gdb. > +clean_restart ${binfile} > + > +if ![runto_main] then { > + return 0 > +} > + > +gdb_test "break [gdb_get_line_number "break here"]" \ > + ".*Breakpoint.* at .*" \ > + "set breakpoint" > + > +set bp_addr [get_maint_info_bp "-1"] > + > +gdb_test "maint info break -1" \ > + "-1.*shlib events.*keep y.*$bp_addr.*" \ > + "maint info breakpoint -1 error" > + > +gdb_test "clear *$bp_addr" \ > + "No breakpoint at \\*$bp_addr." \ > + "clear internal breakpoint error" > +