From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01olkn2030.outbound.protection.outlook.com [40.92.99.30]) by sourceware.org (Postfix) with ESMTPS id 2741738582B1 for ; Thu, 23 Jun 2022 13:29:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2741738582B1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UkJaWsRqApEPV6r+pyDeKrjQC52669nGDtAnr+BONO8d0FGYx0KrYCX7kbbW430EO4YZpuJu6cRaY/zmvFaQOidvV/5KFY2P92T0nEttKnJUvaZlta5rXep3Nz6+vPKIYOkOWXs6iVq1ORincWZXV9W8smtpdle8dhuI25YoOqKAJMxocuNLaLFp3C5nuJ53f2MXfWf2S4noqp4yn365JqSaOhYGZLefhjY0rVsFNK8bX87LBUvOacBKhw92L6rxDZ0/Y2M85qItRQ25lbdZwEmCq+ffRMXLN/kxs15m04c5UKGZPjRXmwcKReZpwABzBWVOuPAw79YYoXr8EtDDZw== 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=K8z03e4PX9xIx//ojtqAOV9EIOdt9t2SHS/7B2D5Azk=; b=exhIXlGCYFO3g8RWpKtsNdAFYRDFqyBs0jj+ZyeE3UAZIR0aVy3OJc1QxKWN0cQjC6NlCw05Oueg/Klt4wJS4ROFG+Je8FKMsGEaHeOFyI29U+uns2Afx12vYMUaiR960hnb1zcsMplQtp47MWE4VPd+m3ELySZXWrLZ2U6LNmpeDKrvYA0Z1d0hSoxKftDD1VVpJmKXiVxzhYXv1x6weHsfkGpkcK0tXrtsNDqOgwKW5ZhUGzpVPx1I6E+qLcKgwYSLgjrFsSrpLPhz94/wrXehf0nT6W+dzTMklhBnAf3DAy3A7hFFgJDnG6szLDpLVZuJ/TKJGIopd+hCsGkwmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:197::9) by TYYP286MB1453.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:de::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 13:29:07 +0000 Received: from OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM ([fe80::fd8b:c4b8:61a8:3d0]) by OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM ([fe80::fd8b:c4b8:61a8:3d0%8]) with mapi id 15.20.5373.016; Thu, 23 Jun 2022 13:29:07 +0000 Message-ID: Subject: Re: [PATCH 2/2] gdb/testsuite: add a clear test to py-breakpoint.exp From: Enze Li To: Andrew Burgess , gdb-patches@sourceware.org Cc: pedro@palves.net, enze.li@gmx.com Date: Thu, 23 Jun 2022 21:29:03 +0800 In-Reply-To: <877d5ac7i9.fsf@redhat.com> References: <877d5ac7i9.fsf@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.2 X-TMN: [yiOqxL1wZBsrRKoVsvVS6kKctH/RpE2R] X-ClientProxiedBy: SG2PR02CA0097.apcprd02.prod.outlook.com (2603:1096:4:92::13) To OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:197::9) X-Microsoft-Original-Message-ID: <8084b2f258ca6cdf88ddfc2c447da884b95741df.camel@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7c357935-a60a-4031-404a-08da551c596e X-MS-TrafficTypeDiagnostic: TYYP286MB1453:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JyXaK3kqo6WrbPtIoq8zz9gkOH7BTIHmfBGwSXVXL5A5YVn8hKmkJj2/vS26ywuiVu6PtMo60kkkSxBddZr0WB2OmnB5JKMh7Xgf1J6IzuQ9I87zzrTdJVmC3q4Z/UikhrnIS9tvBXcaGFnepqjr6l39c6Ikr1Vhd6zba7rIkZQN6MHcAnOn/PE5esj/UkfiCbhJxgd0jR7eRJ/03AHTnotO0c25in16LRtBwXm4kDaM4IzqwEkc7EnNFyJuwGxv0XWRYbrFYmpXpn94yDr2RhuywsoYr3Xxv0aCqDtAOfIxc6LNLsEOEPmuDzn2vGmYUkxPLiaOSs6bl7M4pWBES1dV3yX3zPyXt3Up0sRzX8N54KRE8T1h4MENgD0d12M/UalpLAPADKTaEoJj4PWl8jB8cJnZOmWo0jD/kV314fi33+A50Ttu8NNxBG3X8cwYhCpqEd3tkxxwfit65gPIUuMq8fKu/Ai55lyR6KcGCajdifnNX1dp/Bdx82SEsp06jRSZuHP/jW7NXa1+4pQJBO6RmE+ThSSmRT51pJrF1ZgEaJJwsBPmf0VyeCr1p0S7bstwezgUr1yncCgQ4CHxBh9sATEXIX099/QDbgjdFyLfbVN9+QGLBTHgqD0BKp97SrhYn1VUi9rViQMJhiKN5Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Z1dLN25vdlhsVXFBL0VNTzQ1c3JzQlVNejg4dGg1RnJ0OXZ4a2lpR05vakgz?= =?utf-8?B?bEdnSkJLMC8xL1hqeTlseXQxbHhHU3V3elJ4cUxjd2Z5OVVmNDFSRVpkV29H?= =?utf-8?B?Z1JTUE0xYk5NcTRoZFQ4MzJEaVNJR3lFK3c0T1dDNElvb3JQZHRkZXdRVEdp?= =?utf-8?B?Unl1YmlPNi9pZFdqRS94cGkzYW9HelNnUnZaRW1HTFE0QUx0dFNjS1phWHJ2?= =?utf-8?B?UzlqRk13SWZPd1hGT2pxVU9MZzM2QmJFb3BlaVJhYjZTTmRnUG13SkNmdjlX?= =?utf-8?B?U2w2YU9xMzNkNjMraVVIZktFZEEyUmdWUmo3djZvSDRFK25pQy8vZzRlbk9j?= =?utf-8?B?cGJLMElvZGlCWGhsM0Nvdm1XNVdhamNFbi81Yng0Uk0wUXFCdGd0clgwbkVX?= =?utf-8?B?anc5KzZUbnYxL0pYWVREWXJtNlhaaWw0YjNZSlN6VUFOMzBTRkdnZ0owZVZ3?= =?utf-8?B?N3FsSjJxYytUY2o1UytYSXhmSkdqdjg3VWVOZlRZQm1qTTZhWGhLaklwU1pi?= =?utf-8?B?QmNJM1h3VHV4ancvUTBtYXJnSFNhVWRoSkVhd3YrNjh1dDl6eFA4c3Z6ZE9q?= =?utf-8?B?d3VaQUc5eTUxbW50bWtLc0VkQ3FRcXgzSFlZcmY0MURzYUdWcmhSb3pUZHg1?= =?utf-8?B?TEMra0xNejJSZDc0amR1V2FxK05hUG5nS1pWbk9JcDR5cG51QTUvNG50NnAr?= =?utf-8?B?Y1F1Qm92UHI2a0l2aEg5WUlPMlh0QllPSjlxbjF2WWswcVdzYUVRaGhsOTdO?= =?utf-8?B?c0crNzJzWEhJenFZakIzbnFFd2tCZmdrMDlFKzROYnFQNk1xdEhCSlpvYm5M?= =?utf-8?B?WS9SMm03UjdaM3I5cHJtb3lSWndpL2VWR3Vwa2ZyUWt2cDdHeC9ROXJyOXox?= =?utf-8?B?cjRjSEdzdDJROVpNcktOYTRkWWFZZnVMWTRQSUVad2RTWDBSbDJySlBXcW82?= =?utf-8?B?a1duUkx2VTRCNDNWTkhrYnkwUmFOelZvbk1GWXJOdE1La3NQNE5nMXE1VU5w?= =?utf-8?B?VnRZU1BBNHFlVFplbHhIOEU3a0RNM3JWMUlpNEQzYUxTbnFIaTErL3NFTmFF?= =?utf-8?B?SXdkUnF1dXpFa3dyVDFaMHFabkJLSTM4L21LU0s2N1N4VW1XcWZtVkVOVnVr?= =?utf-8?B?RW1NZzc3RnNSZmtKWDFES29neHZ3c2ZFd2tGN3hpajh6MllFalRPdENYQ0NF?= =?utf-8?B?amVGanR3eFZYMW15QXRBdVYyaDhmMFBJQ1daMnBFbk56V2J3Q3gxWWJjUWJQ?= =?utf-8?B?S29QVndqNmkrZEJkOThaMDlaUFd3WVZYUjVBMkFnSy9GNXNlVkVYUG9JMU1T?= =?utf-8?B?K0dRTmV2RXJ1cVdrb29Mazl2YjFTcng3YnQ2aEFTT0Mwd1NORFh0Q1UrSjNU?= =?utf-8?B?a1pHNnN5UTJ3c0d5T2V3ZzBkYm15K3VCNzNzYnJzVDQ1bWtXaVhZZGUyKzFq?= =?utf-8?B?UkgxczB6RmRSS3pXcmZqVTJ2YjVjditFMC9EbVFaUHdDTCtHTE1wWVMyOGFa?= =?utf-8?B?M1I5cC9KWkIwWSt6R2NwWXBwRE1zMTZtU0dNSGFDclEyRVJHTzdRdi9BYUlG?= =?utf-8?B?QVZjWUNSeU4vcitzc2R0OEJHMjFLMzBEL2ZvN1N5Um5TbmtJRVp1Tk9zSnpM?= =?utf-8?B?eXdxbkhrazg4bHBoc2ZKM05hQytQVWZuV2U2SDdHRk1ZTnQ2WGNSdEllTkFF?= =?utf-8?B?c0Y5N0h3dGdFQ2ROVWtNNldvN0xocVJHdnBhNlYxLzJWT2ZjMEw2YmdMd2JX?= =?utf-8?B?YWJNNmkyZncvYzF0NFJCZzlyU25iU3k1RDAzcGZQS2xzYUNaVERZUERwcWwx?= =?utf-8?B?RmVpdXBCN2FObDdBb3BISm9TMFFCbzJoYW1vOHRoOC9ZTVh5Nmh6OTNSNGJE?= =?utf-8?B?VkpHU3FCVnBMUThxUkR5QTdpWi9OcXB0UzVWT1QxbGUrdmhNWHJVN2VzWm5G?= =?utf-8?Q?/Hcs+04p2wo=3D?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-05f45.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 7c357935-a60a-4031-404a-08da551c596e X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB2152.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 13:29:07.6844 (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: TYYP286MB1453 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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, 23 Jun 2022 13:29:12 -0000 Hi Andrew, Thanks for your review. Please see below. On Tue, 2022-06-21 at 17:21 +0100, Andrew Burgess wrote: > Enze Li via Gdb-patches writes: >=20 > > This patch adds a test case to try to clear an internal python > > breakpoint using the clear command. > >=20 > > This was suggested by Pedro during a code review of the following > > commit. > >=20 > > =C2=A0 commit a5c69b1e49bae4d0dcb20f324cebb310c63495c6 > > =C2=A0 Date:=C2=A0=C2=A0 Sun Apr 17 15:09:46 2022 +0800 > >=20 > > =C2=A0=C2=A0=C2=A0 gdb: fix using clear command to delete non-user brea= kpoints(PR > > cli/7161) > >=20 > > Tested on x86_64 openSUSE Tumbleweed. > > --- > > =C2=A0gdb/testsuite/gdb.python/py-breakpoint.exp | 41 > > ++++++++++++++++++++++ > > =C2=A01 file changed, 41 insertions(+) > >=20 > > diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp > > b/gdb/testsuite/gdb.python/py-breakpoint.exp > > index 58b1af3a0da..984c20f9dc2 100644 > > --- a/gdb/testsuite/gdb.python/py-breakpoint.exp > > +++ b/gdb/testsuite/gdb.python/py-breakpoint.exp > > @@ -296,6 +296,27 @@ proc_with_prefix test_watchpoints { } { > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"Test watchpoint write" > > =C2=A0} > > =C2=A0 > > +# get_maint_bp_num bp_name > > +# > > +# Purpose: > > +#=C2=A0=C2=A0=C2=A0 Get the number of a specified internal breakpoint. > > +# > > +# Parameter: > > +#=C2=A0=C2=A0=C2=A0 The parameter "bp_name" indicates the name of the = internal > > breakpoint > > +#=C2=A0=C2=A0=C2=A0 to get. > > +# > > +# Return: > > +#=C2=A0=C2=A0=C2=A0 Internal breakpoint number.=C2=A0 Empty string if = fails. > > +# > > +proc get_maint_bp_num { bp_name } { > > +=C2=A0=C2=A0=C2=A0 gdb_test_multiple "maint info break" "find $bp_name= internal > > bp num" { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-re -wrap "0x.*(-\[0-9\]).*$= bp_name.*" { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return $e= xpect_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 return "" > > +} > > + > > =C2=A0proc_with_prefix test_bkpt_internal { } { > > =C2=A0=C2=A0=C2=A0=C2=A0 global srcfile testfile hex decimal > > =C2=A0 > > @@ -309,6 +330,26 @@ proc_with_prefix test_bkpt_internal { } { > > =C2=A0=C2=A0=C2=A0=C2=A0 if ![runto_main] then { > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0return 0 > > =C2=A0=C2=A0=C2=A0=C2=A0 } > > +=C2=A0=C2=A0=C2=A0 delete_breakpoints > > +=C2=A0=C2=A0=C2=A0 gdb_py_test_silent_cmd=C2=A0 "python bp1 =3D gdb.Br= eakpoint > > (\"main\", type=3Dgdb.BP_BREAKPOINT, wp_class=3Dgdb.WP_WRITE, > > internal=3DTrue )" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"Set internal breakpoint" 0 > > + > > +=C2=A0=C2=A0=C2=A0 set bp_num [get_maint_bp_num "main"] >=20 > Instead of adding get_maint_bp_num, would this work? >=20 > =C2=A0 set bp_num [get_python_valueof bp1.number "*DEFAULT*"] It works! There's no need to add a new procedure, and I'll drop it. >=20 > > +=C2=A0=C2=A0=C2=A0 set bp_addr [get_maint_bp_addr $bp_num] > > + > > +=C2=A0=C2=A0=C2=A0 gdb_test "maint info break $bp_num" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"$bp_num.*$bp_addr.*" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"maint info breakpoint \$bp_= num" > > + > > +=C2=A0=C2=A0=C2=A0 gdb_test "python gdb.execute(\'clear *$bp_addr\')" = \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0".*No breakpoint at \\*$bp_a= ddr.*" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"clear internal breakpoint" >=20 > You might also want to try calling clear without the gdb.execute, > just > in case the Python layer makes a difference. >=20 > Thanks, > Andrew In fact, there already exists a test case in the trunk which calling clear command without python extention. (See clear_non_user_bp.exp, line 86). However, if it is still needed here, pls let me know. Best Regards, Enze >=20 > > + > > +=C2=A0=C2=A0=C2=A0 # Check again, make sure that GDB really didn't del= ete the > > internal breakpoint. > > +=C2=A0=C2=A0=C2=A0 gdb_test "maint info break $bp_num" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"$bp_num.*$bp_addr.*" \ > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"maint info breakpoint \$bp_= num after clear" > > + > > =C2=A0=C2=A0=C2=A0=C2=A0 delete_breakpoints > > =C2=A0=C2=A0=C2=A0=C2=A0 gdb_py_test_silent_cmd=C2=A0 "python wp1 =3D g= db.Breakpoint > > (\"result\", type=3Dgdb.BP_WATCHPOINT, wp_class=3Dgdb.WP_WRITE, > > internal=3DTrue )" \ > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"Set watchpoint" 0 > > --=20 > > 2.36.1 >=20