From: Simon Marchi Date: Tue, 8 Feb 2022 21:31:09 +0000 (-0500) Subject: gdb/testsuite: make gdb_breakpoint and runto take a linespec X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d3fc98f9117f81fb6473bc2419fbf575e81a9505;p=binutils-gdb.git gdb/testsuite: make gdb_breakpoint and runto take a linespec Change gdb_breakpoint to accept a linespec, not just a function. In fact, no behavior changes are necessary, this only changes the parameter name and documentation. Change runto as well, since the two are so close (runto forwards all its arguments to gdb_breakpoint). I wrote this for a downstrean GDB port, but thought it could be useful upstream, eventually, even though not callers take advantage of it yet. Change-Id: I08175fd444d5a60df90fd9985e1b5dfd87c027cc --- diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 0b242b64992..859c4733f6b 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -546,9 +546,11 @@ proc gdb_starti_cmd { {inferior_args {}} } { return -1 } -# Set a breakpoint at FUNCTION. If there is an additional argument it is -# a list of options; the supported options are allow-pending, temporary, -# message, no-message and qualified. +# Set a breakpoint using LINESPEC. +# +# If there is an additional argument it is a list of options; the supported +# options are allow-pending, temporary, message, no-message and qualified. +# # The result is 1 for success, 0 for failure. # # Note: The handling of message vs no-message is messed up, but it's based @@ -557,7 +559,7 @@ proc gdb_starti_cmd { {inferior_args {}} } { # no-message: turns off printing of fails (and passes, but they're already off) # message: turns on printing of passes (and fails, but they're already on) -proc gdb_breakpoint { function args } { +proc gdb_breakpoint { linespec args } { global gdb_prompt global decimal @@ -588,9 +590,9 @@ proc gdb_breakpoint { function args } { set print_pass 1 } - set test_name "setting breakpoint at $function" + set test_name "gdb_breakpoint: set breakpoint at $linespec" - send_gdb "$break_command $function\n" + send_gdb "$break_command $linespec\n" # The first two regexps are what we get with -g, the third is without -g. gdb_expect 30 { -re "$break_message \[0-9\]* at .*: file .*, line $decimal.\r\n$gdb_prompt $" {} @@ -658,7 +660,7 @@ proc gdb_breakpoint { function args } { # no-message: turns off printing of fails (and passes, but they're already off) # message: turns on printing of passes (and fails, but they're already on) -proc runto { function args } { +proc runto { linespec args } { global gdb_prompt global decimal @@ -675,14 +677,14 @@ proc runto { function args } { set print_pass 1 } - set test_name "running to $function in runto" + set test_name "runto: run to $linespec" # We need to use eval here to pass our varargs args to gdb_breakpoint # which is also a varargs function. - # But we also have to be careful because $function may have multiple + # But we also have to be careful because $linespec may have multiple # elements, and we don't want Tcl to move the remaining elements after - # the first to $args. That is why $function is wrapped in {}. - if ![eval gdb_breakpoint {$function} $args] { + # the first to $args. That is why $linespec is wrapped in {}. + if ![eval gdb_breakpoint {$linespec} $args] { return 0 }