diff options
author | Enze Li <enze.li@hotmail.com> | 2022-06-24 21:00:40 +0800 |
---|---|---|
committer | Enze Li <enze.li@hotmail.com> | 2022-07-24 12:01:45 +0800 |
commit | c444385fad25c720ca6f7407f748f1d601463938 (patch) | |
tree | e98d33d233344a04303cd73fc28b5ee70d7e10e1 | |
parent | 561e83f7c5cdfb2737ba36a04ea008caa6bcaa36 (diff) | |
download | gdb-c444385fad25c720ca6f7407f748f1d601463938.zip gdb-c444385fad25c720ca6f7407f748f1d601463938.tar.gz gdb-c444385fad25c720ca6f7407f748f1d601463938.tar.bz2 |
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.
-rw-r--r-- | gdb/testsuite/gdb.base/clear_non_user_bp.exp | 25 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb-utils.exp | 28 |
2 files changed, 29 insertions, 24 deletions
diff --git a/gdb/testsuite/gdb.base/clear_non_user_bp.exp b/gdb/testsuite/gdb.base/clear_non_user_bp.exp index 26d7a31..da69435 100644 --- a/gdb/testsuite/gdb.base/clear_non_user_bp.exp +++ b/gdb/testsuite/gdb.base/clear_non_user_bp.exp @@ -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.*" \ diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp index ffdfb75..2195361 100644 --- a/gdb/testsuite/lib/gdb-utils.exp +++ b/gdb/testsuite/lib/gdb-utils.exp @@ -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 "" +} |