From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id A20983858C51 for ; Tue, 21 Jun 2022 16:21:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A20983858C51 Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-573-llmPQaI8OWuvTuNNSiz0Dw-1; Tue, 21 Jun 2022 12:21:23 -0400 X-MC-Unique: llmPQaI8OWuvTuNNSiz0Dw-1 Received: by mail-wr1-f70.google.com with SMTP id m7-20020adfa3c7000000b0021b94088ba2so1320208wrb.9 for ; Tue, 21 Jun 2022 09:21:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=PjYzi5ImikdECkeyjmiDzsg0Dk+9/lz2HZgq4e0wMvc=; b=GFBhAHX/EsK7a0hDoXODSa2k1sbrpRAFJLup5vatX4dzvgxIMwF6kqnvDdlL1Fccf8 Ar1+zDlg39GfeOXGQ4vMxK0x4J42U5a5XAinnpIZAfGWDQMy9nFHub8lvqt4FElfuJx6 NGlrL1mYc2aZD0vf14hgqEsb/+P7Yp0Ft7/dIPWPaaU4bro2JdmTbB13CVg1kpV8TdlP ZoeSn1Z2s65S3d0QFll1b1G6Ok3M54NEpFPXUSAIxqU4e5dVpYhGDypKV9VWA/5tnUbn zmZZ5rh0Iid93gxNqhoyMU9ll0JJP/rjWDiziXpd1dZD9RItARnyQ7t+BAbqc7M6PpGI w8qg== X-Gm-Message-State: AJIora8rFdOdwcRl+WAUTfGWWSqp2zHqSbv+y2DSI6zA0Pgd6MMv9lFs eeVCthgnHM0QpqKc10sF+jGWiO1JkGiVU8m0bt9ccyYqYexVrKABIsrd1b15bjxGVMlOtOwt0/B tfu1bS2qFk0nVknnuUy5+Nw== X-Received: by 2002:a05:600c:190b:b0:39c:7704:74a4 with SMTP id j11-20020a05600c190b00b0039c770474a4mr30332878wmq.92.1655828480520; Tue, 21 Jun 2022 09:21:20 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vhPkextSesTeFpgai31pMWsXZS5lx2MK7e5NdTdeU7ysSJoWfkLQJLLkNwzLpDOJzkTgHc8w== X-Received: by 2002:a05:600c:190b:b0:39c:7704:74a4 with SMTP id j11-20020a05600c190b00b0039c770474a4mr30332865wmq.92.1655828480321; Tue, 21 Jun 2022 09:21:20 -0700 (PDT) Received: from localhost ([213.31.44.107]) by smtp.gmail.com with ESMTPSA id i9-20020a05600c354900b003975c7058bfsm19146446wmq.12.2022.06.21.09.21.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 09:21:19 -0700 (PDT) From: Andrew Burgess To: Enze Li , gdb-patches@sourceware.org Cc: pedro@palves.net, enze.li@gmx.com Subject: Re: [PATCH 2/2] gdb/testsuite: add a clear test to py-breakpoint.exp In-Reply-To: References: Date: Tue, 21 Jun 2022 17:21:18 +0100 Message-ID: <877d5ac7i9.fsf@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, 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: Tue, 21 Jun 2022 16:21:26 -0000 Enze Li via Gdb-patches writes: > This patch adds a test case to try to clear an internal python > breakpoint using the clear command. > > This was suggested by Pedro during a code review of the following > commit. > > commit a5c69b1e49bae4d0dcb20f324cebb310c63495c6 > Date: Sun Apr 17 15:09:46 2022 +0800 > > gdb: fix using clear command to delete non-user breakpoints(PR cli/7161) > > Tested on x86_64 openSUSE Tumbleweed. > --- > gdb/testsuite/gdb.python/py-breakpoint.exp | 41 ++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > 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 { } { > "Test watchpoint write" > } > > +# get_maint_bp_num bp_name > +# > +# Purpose: > +# Get the number of a specified internal breakpoint. > +# > +# Parameter: > +# The parameter "bp_name" indicates the name of the internal breakpoint > +# to get. > +# > +# Return: > +# Internal breakpoint number. Empty string if fails. > +# > +proc get_maint_bp_num { bp_name } { > + gdb_test_multiple "maint info break" "find $bp_name internal bp num" { > + -re -wrap "0x.*(-\[0-9\]).*$bp_name.*" { > + return $expect_out(1,string) > + } > + } > + return "" > +} > + > proc_with_prefix test_bkpt_internal { } { > global srcfile testfile hex decimal > > @@ -309,6 +330,26 @@ proc_with_prefix test_bkpt_internal { } { > if ![runto_main] then { > return 0 > } > + delete_breakpoints > + gdb_py_test_silent_cmd "python bp1 = gdb.Breakpoint (\"main\", type=gdb.BP_BREAKPOINT, wp_class=gdb.WP_WRITE, internal=True )" \ > + "Set internal breakpoint" 0 > + > + set bp_num [get_maint_bp_num "main"] Instead of adding get_maint_bp_num, would this work? set bp_num [get_python_valueof bp1.number "*DEFAULT*"] > + set bp_addr [get_maint_bp_addr $bp_num] > + > + gdb_test "maint info break $bp_num" \ > + "$bp_num.*$bp_addr.*" \ > + "maint info breakpoint \$bp_num" > + > + gdb_test "python gdb.execute(\'clear *$bp_addr\')" \ > + ".*No breakpoint at \\*$bp_addr.*" \ > + "clear internal breakpoint" You might also want to try calling clear without the gdb.execute, just in case the Python layer makes a difference. Thanks, Andrew > + > + # Check again, make sure that GDB really didn't delete the internal breakpoint. > + gdb_test "maint info break $bp_num" \ > + "$bp_num.*$bp_addr.*" \ > + "maint info breakpoint \$bp_num after clear" > + > delete_breakpoints > gdb_py_test_silent_cmd "python wp1 = gdb.Breakpoint (\"result\", type=gdb.BP_WATCHPOINT, wp_class=gdb.WP_WRITE, internal=True )" \ > "Set watchpoint" 0 > -- > 2.36.1