gdb/testsuite: rename get_maint_bp_addr and move it to gdb-utils.exp

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.
This commit is contained in:
Enze Li 2022-06-24 21:00:40 +08:00
parent 561e83f7c5
commit c444385fad
2 changed files with 29 additions and 24 deletions

View File

@ -16,29 +16,6 @@
# 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.*" \

View 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 ""
}