From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2144.outbound.protection.outlook.com [40.92.63.144]) by sourceware.org (Postfix) with ESMTPS id 247133857811 for ; Tue, 19 Apr 2022 14:07:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 247133857811 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aB6btc1bbSuhRm0BOrreqgPutpUEypp03x4uqmjVrxZgBfh/L66g75z2jpJ5LWNMwxkzK4X/S/XtkPtmliWlRJms3tu3XBq3m5y3wjpGnZibro3sGct7rM2Xq5QxT0jA9iNHl7NH3MYDSWmdcXiXimwmLzArXOtpfVB713En+WNV3hafxxnUZ2BuDaNreCKbDR7lq4bNTYZld3VA0dW8w+b7pza26YgS0CC9m5oYydGBz3Co/jDmCrfF0DjlE3BeDimdE0u7EdF+Me+97HlMuMbHr/puq+HUPKzk+i1FaCgHT5emE58kP1bgL6kpZ+VI1MVJxcsKntFTfEjvVyutlw== 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=WeLtkPcJZzXQDM1hQlxAiqtjqahPIJNeHHoF6OnAa/M=; b=QV+aHeiOjWnYmpvOyKmGfJmEka5RbtXhsrMrlpoggx+uo7YIBPFTq2YkM/A2aeSAc27oq1Ka1pDOwuEt7m/wa/G7naqWvmNSG1iymeB5EEnCJmRacwEfOxdgTXJ09QUoqEVAxF5yyz8SjYTek6Ud9d+ajLbHEzrCGbN9FbmsDCgBWnMFry8rhHuRPBVQihyxWoCCp/TOWBDikCCQNEJh60nrqKWOR8jvzs9cO67f1n7HxIyYGNSr9zZ3aetOMwi5xrGzTsjQQYoazEr7/8FnlbNiZUQS4gZtbS1EVQhn2/LHFxiqWam/HzA7/yxrHPjcyyX40Rv+4LVKA5bnGJiT7w== 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 SY4P282MB2249.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:f2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.18; Tue, 19 Apr 2022 14:07:10 +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.5164.025; Tue, 19 Apr 2022 14:07:10 +0000 Message-ID: Subject: Re: [PATCH v3] gdb: fix using clear command to delete non-user breakpoints(PR cli/7161) From: Enze Li To: Pedro Alves , tom@tromey.com Cc: gdb-patches@sourceware.org Date: Tue, 19 Apr 2022 22:07:03 +0800 In-Reply-To: <2350d4f9-0f69-48a2-4291-dee5743e6614@palves.net> References: <87sfqez4de.fsf@tromey.com> <2350d4f9-0f69-48a2-4291-dee5743e6614@palves.net> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.0 X-TMN: [FAbSXN4ELbfTT7x3Jsom6vSh7HDOD1Zq] X-ClientProxiedBy: HK2PR02CA0219.apcprd02.prod.outlook.com (2603:1096:201:20::31) To MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:71::10) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8fefde7-4308-4185-f469-08da220de4fb X-MS-TrafficTypeDiagnostic: SY4P282MB2249:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EDmaP+qDoRX6jVG4Z3cWVPqDgwOLbrrOrGg+Kq+IOy6boZF4TPbXszbVmdNey6qD3eFXx5E2SZGavwNPDFI+r6xQSNgN688GXaVWzcDmAKkT62/Gp30t8zbRNFLFVHhterpV6GSiI/4i9NxMuscV5A9iZSN7qWcRPvKA70ibbBGp49PnAR1lrcaAYIXR+va+bzpSEoF+oJsH4hCodiOmUaoZsoQtSoj+EDwosXDOLH9bYbexDhGIb1h9qaUtrWfU65CNUcSNdgrQpQOTjnkenymBZZeFjVV1IDv0D22C2gtALCXgkZvWym7m1wQ83PbJNI9NgAvkjcjbWWuswU6VS9hlHDVE242/PIi9xRz/tj3pGciYhckS3OeHd5Lr1P/1ps4A8PRq4T9Qcrp/3A8p97PPJQ/6bfstZ7md7ncZG5UhznhQ+aUCS4fusA8y12KxUjuDoCDpGVIDnQXD+aOOep8wGABNMHysoGzkCmd+y7wUCFbV8WQTVz3SBYKvy5D5sKFHmqXbz6yOMGHZLehWYP81mqYZuKxvy0MJIU3sc0x8YMhedkvazvaQw0Auf5lAt5A2QE441Ub6NJBgM9Q5vfijr3nAtZEMMhtCFShPfJf3u9cNsAcucXbmPtZ4Yq2e X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UnVqL3JsSnUvRnpSWGNETHhVSDJzUzg3Q0UySjZLb2E3RXRhNlR2dlVSdUNs?= =?utf-8?B?dkpPU0s4WHRYQm1rSkg0dHRlMHV2UWVaZWRLSkdxRDBqdW9ZbERkYzUwV0xt?= =?utf-8?B?U3paTkY4SUF3STh5MGdzOWsxMmEyTGVlajVGa3FIZkFwOGFHNUFUWTUrZmxG?= =?utf-8?B?Q1N4dFIyVXFCbUNZNExOZ3hGblk4bWcrU2FMME0vNnJwa1M3TVlBUlB0WTly?= =?utf-8?B?WUdDb09hdTVuQTNZcmxIQmFIcFNOSlBSWTFPTjBGRlRaenZHRnNXMmVLVTVW?= =?utf-8?B?SjhnWjc5V3d0a2pQQlpjVE5VS1dyTjNsR3VXMVExaEMvaEZSMHpWZVE1bkda?= =?utf-8?B?OEJKTEhLNytmUWFjRXpqRjFzSGI4UHUzWkdaTGt3dG1jQUVKTW1PRmlvRXFC?= =?utf-8?B?djBpT1VDQkI4ZEQ5ejlITllLbmVINWRxSXYxVmZKRXl1Y1BibUZFUStaRndw?= =?utf-8?B?WUJiZUJUOVNWTjFldXhmQ0FaQ0hSYVl5dmVGT1FjNUx6eXJEVldienRHdlNY?= =?utf-8?B?ZlJ4angzTXZzcjJLTDlMQ3ZqV3NmSFdLbzZWN1BCMkJ2M3V6KzA5NTYyUlNV?= =?utf-8?B?ZTR2NFdrR2xTSVVJUmVWVGQ1anFYYmpwbXEweXZobnI2RUJpK25LaVdLaHdn?= =?utf-8?B?Mm5sUk93R0xEUFFvUTBveE9ZQ2NIaDA5aTNET2pNbVJXS0lNYzdzbG4xOFFS?= =?utf-8?B?MVlMbHhlQXJKb0dBVmpNT0tVRVdJVVRCcHNINUEyU0FzU3ZzUi93NlhGdHox?= =?utf-8?B?Ris0WlVlMmxMK2ZKdWMxVytzRnhTNGlIV0pIRUhLVHZudUoyNEVvcmtoR0k0?= =?utf-8?B?bkQyOWtjMWYvZFRmZVlsTWRFYjZTUHhIQmJqREhBRU1NWDRaeC9kMjZyMnVG?= =?utf-8?B?Mm1oRjRCbGVNNm54cDJITGJYckRuK2JEN1Z0eTRRb0FYR2FXei9CemIvK1R2?= =?utf-8?B?dVdaSjk2Yk1iMVhWM2U4ejFqblVNL0U1VUNaUGtKdXBQdTVnekc5SlBmMGdt?= =?utf-8?B?akVDN0NzQkhXSThTN0tQYWVGQ2lZWXNhakxDcC9tZXBvaXlYb1k2d2hLZElY?= =?utf-8?B?eEJtTVRLQUhFcFYrZFEyZmRNUmVCR0hrSjFFa2tabUdwc0NUL3RhQUUwNjBX?= =?utf-8?B?aStSc2UwZmNOTjdSZ1dLRnk3UnBSQVFTSllRT3ZIelFxOGdzVlllM2h0OXJs?= =?utf-8?B?NVYzWGRZVjMyZEQ3SHMxZmhSWU9wWTlrOHM1RjhnUWZFUUx5QmFBUVBpUXRl?= =?utf-8?B?bSt4aHVRMGx2QXN2dEg0b28wQkx3Kzg2ZHFXdWp2TTZCS3BiNG5hTWliRURJ?= =?utf-8?B?TjZ1UmROd0VwdHAzVTdKbWVxcElRR3ErY2hmK0ZZZUhsMnhrYldLbFpoc0Nq?= =?utf-8?B?NUp4aEhRSHpqTmZsQVJHWnVkdnRHN0w0eGx4blhtcWxJazQ4clFsK3RJbnlK?= =?utf-8?B?OGlOQU13N0tOL3ZLcy9xUlR0bVJRMnhQcE82NkpDRC9XQjE0Szc4VVNpaGxH?= =?utf-8?B?MlBITUVrYVA2REVNUDYvV0RzRHJGdS9sNFpsM01QenA0NUVEUDYvc3RoUEdU?= =?utf-8?B?bXZ0YmEvNVZsSjhQSDRGbTFUelJ1NDIwdEJpTEZCWXR1WVJLUG5ZVCtwclkz?= =?utf-8?B?NDN4UnpKMjZzS2Y4TlJ6dmFQOUZUYndKMnI1R0UwVEVZc29WVjhnUTcwNm1Z?= =?utf-8?B?aFRFT2tETVI4TnRoWXA4SktFWkx2T3ZSQjNoSHpUOE41M3RmQW5zRmloRnFs?= =?utf-8?B?Q0lteTFyZE5uWEhKMU5sc0t0VlEyYnBJdkRIVmFka2tzZVNUTEM3MHc0N2Ns?= =?utf-8?B?QkdHSW12MUZFUHZWaEd5QVBHOWtxeWVvMkVtd0x1SEtBcWtlbDhKSVVNeHo3?= =?utf-8?B?QTdYa2FYWFZZYnZXVlZSb1MwVmRqcUZLUktnVXlYQVBJNFc2V3JsRWZVU3JX?= =?utf-8?Q?zSd32wfCL6M=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-746f3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: b8fefde7-4308-4185-f469-08da220de4fb X-MS-Exchange-CrossTenant-AuthSource: MEAP282MB0293.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2022 14:07:10.0170 (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: SY4P282MB2249 X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, 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: Tue, 19 Apr 2022 14:07:20 -0000 Hi Pedro, Thank you for the review. On Mon, 2022-04-18 at 17:04 +0100, Pedro Alves wrote: > On 2022-04-16 04:42, Enze Li via Gdb-patches wrote: >=20 >=20 > > +proc get_maint_info_bp { var } { > > +=C2=A0=C2=A0=C2=A0 global expect_out > > +=C2=A0=C2=A0=C2=A0 global gdb_prompt > > + > > +=C2=A0=C2=A0=C2=A0 gdb_test_multiple "maint info break -1" "find addre= ss of > > internal bp $var" { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-re ".*(0x\[0-9a-f\]+).*$gdb= _prompt $" { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ret= urn $expect_out(1,string) > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0timeout { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 perror "c= ouldn't find address of $var" > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return "" > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0} >=20 > You shouldn't need a timeout match, gdb_test_multiple already has one > internally. Fixed. >=20 > > +=C2=A0=C2=A0=C2=A0 } > > +=C2=A0=C2=A0=C2=A0 return "" > > +} > > + > > +standard_testfile .c > > + > > +# this testcase just needs a "Hello world" source file, reuse >=20 > Uppercase "this" -> "This". >=20 Fixed. > > +# gdb.server/sysroot.c instead of adding a new one. > > +if=C2=A0 { [gdb_compile "${srcdir}/gdb.server/sysroot.c" "${binfile}" > > executable {debug}] !=3D "" } { > > +=C2=A0=C2=A0=C2=A0=C2=A0 untested "failed to compile" > > +=C2=A0=C2=A0=C2=A0=C2=A0 return -1 > > +} > > + > > +# Start with a fresh gdb. > > +clean_restart ${binfile} > > + > > +if ![runto_main] then { > > +=C2=A0=C2=A0=C2=A0 return 0 > > +} > > + > > +gdb_test "break sysroot.c:23" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0".*Breakpoint.* at .*" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"set breakpoint" > > + > > +set bp_addr [get_maint_info_bp "-1"] > > + >=20 > It's not portable to assume that breakpoint -1 is the shlib_events > breakpoint. > Some targets don't even use such a breakpoint.=C2=A0 E.g., Windows.=C2=A0= It > would be > better to instead make get_maint_info_bp look for the first internal > breakpoint and > return its number. >=20 Thanks, this helps me a lot. > > +gdb_test "maint info break -1" \ > > +=C2=A0=C2=A0=C2=A0 "-1.*shlib events.*keep y.*$bp_addr.*" \ > > +=C2=A0=C2=A0=C2=A0 "maint info breakpoint -1 error" >=20 > Why is this test called "... error" ? Drop the word "error"? Done. > > + > > +gdb_test "clear *$bp_addr" \ > > +=C2=A0=C2=A0=C2=A0 "No breakpoint at \\*$bp_addr." \ > > +=C2=A0=C2=A0=C2=A0 "clear internal breakpoint error" > > + >=20 > It would be good to issue the "maint info break" command again after > the clear, > to make sure that GDB really didn't delete the breakpoint, even if > the clear command > errored out. Fixed. >=20 > Not a strong requirement, but it would be great if we also had a test > trying to clear an internal > python breakpoint.=C2=A0 Did you look into adding that?=C2=A0 If it's too > complicated to add it here or to > a new file, maybe add a "clear" test to gdb.python/py-breakpoint.exp > ? If this is a requirement, I'd like to implement it. Is this something that can be done later? I've sent a fix patch to the gdb-patch@list and I posted it here: https://sourceware.org/pipermail/gdb-patches/2022-April/188044.html Thanks, Enze