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 a5c69b1e49
  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.
This commit is contained in:
Enze Li
2022-06-24 21:57:54 +08:00
parent c444385fad
commit ea892bdc4b

View File

@@ -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