gdb/testsuite: rename get_maint_bp_addr and move it to gdb-utils.exp
authorEnze Li <enze.li@hotmail.com>
Fri, 24 Jun 2022 13:00:40 +0000 (21:00 +0800)
committerEnze Li <enze.li@hotmail.com>
Sun, 24 Jul 2022 04:01:45 +0000 (12:01 +0800)
The get_maint_bp_addr procedure will be shared by other test suite, so
move it to gdb-utils.exp.

Following Andrew's suggestion, I renamed get_maint_bp_addr to
gdb_get_bp_addr, since it would have handled normal breakpoints in
addition to the internal ones.  Note that there is still room for
improvement in this procedure, which I indicated in comments nearby.

gdb/testsuite/gdb.base/clear_non_user_bp.exp
gdb/testsuite/lib/gdb-utils.exp

index 26d7a31fa47c9f39a1c2b49188ff90a6843ebd21..da694351c877aabfe779fd98de47bf6a3a57b96f 100644 (file)
 # Regression test for PR gdb/7161.  Test that GDB cannot delete non-user
 # breakpoints with clear command.
 
-# get_maint_bp_addr num
-#
-# Purpose:
-#    Get address of the specified internal breakpoint when using command
-#    "maint info breakpoints $num".
-#
-# Parameter:
-#    The parameter "num" indicates the number of the internal breakpoint
-#    to get.  Note that this parameter must be a negative number.
-#    E.g., -1 means that we're gonna get the first internal breakpoint.
-#
-# Return:
-#    Internal breakpoint address.
-#
-proc get_maint_bp_addr { num } {
-    gdb_test_multiple "maint info break $num" "find address of internal bp $num" {
-       -re -wrap ".*(0x\[0-9a-f\]+).*" {
-           return $expect_out(1,string)
-       }
-    }
-    return ""
-}
-
 # get_first_maint_bp_num
 #
 # Purpose:
@@ -77,7 +54,7 @@ if ![runto_main] then {
 }
 
 set bp_num [get_first_maint_bp_num]
-set bp_addr [get_maint_bp_addr $bp_num]
+set bp_addr [gdb_get_bp_addr $bp_num]
 
 gdb_test "maint info break $bp_num" \
     "$bp_num.*$bp_addr.*" \
index ffdfb75557c6dfee9d018dbd57a249a19c2b2d9e..21953611ec28507796410475d2581ac7e977ea8b 100644 (file)
@@ -72,3 +72,31 @@ proc style {str style} {
     }
     return "\033\\\[${style}m${str}\033\\\[m"
 }
+
+# gdb_get_bp_addr num
+#
+# Purpose:
+#    Get address of a particular breakpoint.
+#
+# Parameter:
+#    The parameter "num" indicates the number of the breakpoint to get.
+#    Note that *currently* this parameter must be an integer value.
+#    E.g., -1 means that we're gonna get the first internal breakpoint;
+#    2 means to get the second user-defined breakpoint.
+#
+# Return:
+#    First address for a particular breakpoint.
+#
+# TODO:
+#    It would be nice if this procedure could accept floating point value.
+#    E.g., 'gdb_get_bp_addr 1.2' means to get the address of the second
+#    location of breakpoint #1.
+#
+proc gdb_get_bp_addr { num } {
+    gdb_test_multiple "maint info break $num" "find address of specified bp $num" {
+       -re -wrap ".*(0x\[0-9a-f\]+).*" {
+           return $expect_out(1,string)
+       }
+    }
+    return ""
+}