From ea892bdc4b6da5782c6ea6273aff499fb5fd5e6f Mon Sep 17 00:00:00 2001 From: Enze Li Date: Fri, 24 Jun 2022 21:57:54 +0800 Subject: [PATCH] gdb/testsuite: add a clear test to py-breakpoint.exp 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 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp index 58b1af3a0da..583408e10af 100644 --- a/gdb/testsuite/gdb.python/py-breakpoint.exp +++ b/gdb/testsuite/gdb.python/py-breakpoint.exp @@ -309,6 +309,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_python_valueof bp1.number "*DEFAULT*"] + set bp_addr [gdb_get_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" + + # 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.30.2