From c444385fad25c720ca6f7407f748f1d601463938 Mon Sep 17 00:00:00 2001 From: Enze Li Date: Fri, 24 Jun 2022 21:00:40 +0800 Subject: [PATCH] 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. --- gdb/testsuite/gdb.base/clear_non_user_bp.exp | 25 +---------------- 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 26d7a31fa47..da694351c87 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 ffdfb75557c..21953611ec2 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 "" +} -- 2.30.2