gdb/testsuite: change newline patterns used in gdb_test

This commit makes two changes to how we match newline characters in
the gdb_test proc.

First, for the newline pattern between the command output and the
prompt, I propose changing from '[\r\n]+' to an explicit '\r\n'.

The old pattern would spot multiple newlines, and so there are a few
places where, as part of this commit, I've needed to add an extra
trailing '\r\n' to the pattern in the main test file, where GDB's
output actually includes a blank line.

But I think this is a good thing.  If a command produces a blank line
then we should be checking for it, the current gdb_test doesn't do
that.  But also, with the current gdb_test, if a blank line suddenly
appears in the output, this is going to be silently ignored, and I
think this is wrong, the test should fail in that case.

Additionally, the existing pattern will happily match a partial
newline.  There are a strangely large number of tests that end with a
random '.' character.  Not matching a literal period, but matching any
single character, this is then matching half of the trailing newline
sequence, while the \[\r\n\]+ in gdb_test is matching the other half
of the sequence.  I can think of no reason why this would be
intentional, I suspect that the expected output at one time included a
period, which has since been remove, but I haven't bothered to check
on this.  In this commit I've removed all these unneeded trailing '.'
characters.

The basic rule of gdb_test after this is that the expected pattern
needs to match everything up to, but not including the newline
sequence immediately before the GDB prompt.  This is generally how the
proc is used anyway, so in almost all cases, this commit represents no
significant change.

Second, while I was cleaning up newline matching in gdb_test, I've
also removed the '[\r\n]*' that was added to the start of the pattern
passed to gdb_test_multiple.

The addition of this pattern adds no value.  If the user pattern
matches at the start of a line then this would match against the
newline sequence.  But, due to the '*', if the user pattern doesn't
match at the start of a line then this group doesn't care, it'll
happily match nothing.

As such, there's no value to it, it just adds more complexity for no
gain, so I'm removing it.  No tests will need updating as a
consequence of this part of the patch.

Reviewed-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
Andrew Burgess
2023-03-30 13:26:25 +01:00
parent c5a5f322a4
commit e2f620135d
39 changed files with 264 additions and 241 deletions

View File

@@ -31,7 +31,7 @@ if {![runto "vsizelim.adb:$bp_location"]} {
} }
gdb_test "set varsize-limit 16" \ gdb_test "set varsize-limit 16" \
"Warning: command 'set varsize-limit' is deprecated.\r\nUse 'set max-value-size'." "Warning: command 'set varsize-limit' is deprecated.\r\nUse 'set max-value-size'\\.\r\n"
gdb_test "print small" " = \"1234567890\"" gdb_test "print small" " = \"1234567890\""

View File

@@ -56,7 +56,7 @@ gdb_test "break loop_count" \
"breakpoint loop_count" "breakpoint loop_count"
gdb_test "continue" \ gdb_test "continue" \
"Continuing\\..*Breakpoint.*loop_count \\(\\) at.*call-rt-st.c:$stop_line\[ \t\r\n\]+$stop_line\[\t \]+for \\(index=0; index.4; index..\\);.*\[\r\n \]+" \ "Continuing\\..*Breakpoint.*loop_count \\(\\) at.*call-rt-st.c:$stop_line\[ \t\r\n\]+$stop_line\[\t \]+for \\(index=0; index.4; index..\\);.*" \
"continue to loop_count" "continue to loop_count"
gdb_test_multiple "finish" "finish out from loop count" { gdb_test_multiple "finish" "finish out from loop count" {

View File

@@ -496,8 +496,8 @@ gdb_test_no_output "set target-charset UTF-8"
gdb_test "print \"\\242\"" " = \"\\\\242\"" \ gdb_test "print \"\\242\"" " = \"\\\\242\"" \
"non-representable target character" "non-representable target character"
gdb_test "print '\\x'" "\\\\x escape without a following hex digit." gdb_test "print '\\x'" "\\\\x escape without a following hex digit"
gdb_test "print '\\u'" "\\\\u escape without a following hex digit." gdb_test "print '\\u'" "\\\\u escape without a following hex digit"
gdb_test "print '\\9'" " = \[0-9\]+ '9'" gdb_test "print '\\9'" " = \[0-9\]+ '9'"
# An octal escape can only be 3 digits. # An octal escape can only be 3 digits.

View File

@@ -386,8 +386,8 @@ gdb_test "overlay list" "No sections are mapped."
gdb_test "overlay map" "Overlay debugging not enabled.*" "overlay map #1" gdb_test "overlay map" "Overlay debugging not enabled.*" "overlay map #1"
gdb_test "overlay unmap" "Overlay debugging not enabled.*" "overlay unmap #1" gdb_test "overlay unmap" "Overlay debugging not enabled.*" "overlay unmap #1"
gdb_test_no_output "overlay manual" "overlay manual #2" gdb_test_no_output "overlay manual" "overlay manual #2"
gdb_test "overlay map" "Argument required: name of an overlay section." "overlay map #2" gdb_test "overlay map" "Argument required: name of an overlay section" "overlay map #2"
gdb_test "overlay unmap" "Argument required: name of an overlay section." "overlay unmap #2" gdb_test "overlay unmap" "Argument required: name of an overlay section" "overlay unmap #2"
#test print "p" abbreviation #test print "p" abbreviation
gdb_test "p" "The history is empty." "print \"p\" abbreviation" gdb_test "p" "The history is empty." "print \"p\" abbreviation"

View File

@@ -191,11 +191,11 @@ gdb_test "printf \"%p\\n\", 1" "0x1"
# play with "print", too # play with "print", too
# #
gdb_test "print/k j" ".*Undefined output format.*" gdb_test "print/k j" ".*Undefined output format.*"
gdb_test "print/d j" " = 0\[\\r\\n\]+" "debug test output 1" gdb_test "print/d j" " = 0" "debug test output 1"
gdb_test "print/r j" " = 0\[\\r\\n\]+" "debug test output 1a" gdb_test "print/r j" " = 0" "debug test output 1a"
gdb_test "print/x j" " = 0x0\[\\r\\n\]+" "debug test output 2" gdb_test "print/x j" " = 0x0" "debug test output 2"
gdb_test "print/r j" " = 0x0\[\\r\\n\]+" "debug test output 2a" gdb_test "print/r j" " = 0x0" "debug test output 2a"
gdb_test "print j" " = 0\[\\r\\n\]+" "debug test output 3" gdb_test "print j" " = 0" "debug test output 3"
# x/0 j doesn't produce any output and terminates PA64 process when testing # x/0 j doesn't produce any output and terminates PA64 process when testing
gdb_test_no_output "x/0 j" gdb_test_no_output "x/0 j"

View File

@@ -234,7 +234,7 @@ proc_with_prefix catch_fork_child_follow {second_inferior} {
# Verify that the catchpoint is mentioned in an "info breakpoints", # Verify that the catchpoint is mentioned in an "info breakpoints",
# and further that the catchpoint mentions no process id. # and further that the catchpoint mentions no process id.
gdb_test "info breakpoints" \ gdb_test "info breakpoints" \
".*catchpoint.*keep y.*fork\[\r\n\]+" \ ".*catchpoint.*keep y.*fork" \
"info breakpoints before fork" "info breakpoints before fork"
gdb_test "continue" \ gdb_test "continue" \

View File

@@ -33,22 +33,22 @@ gdb_test "info macro -- -all" \
"The symbol `-all' has no definition .*\r\nat .*$srcfile:\[0-9\]+" "The symbol `-all' has no definition .*\r\nat .*$srcfile:\[0-9\]+"
gdb_test "info macro -all --" \ gdb_test "info macro -all --" \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" "You must follow.*with the name.*you want to see.*\[^\r\n\]*"
gdb_test "info macro -all --" \ gdb_test "info macro -all --" \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" "You must follow.*with the name.*you want to see.*\[^\r\n\]*"
gdb_test "info macro -all --" \ gdb_test "info macro -all --" \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" "You must follow.*with the name.*you want to see.*\[^\r\n\]*"
gdb_test "info macro --" \ gdb_test "info macro --" \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" "You must follow.*with the name.*you want to see.*\[^\r\n\]*"
gdb_test "info macro -- " \ gdb_test "info macro -- " \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" \ "You must follow.*with the name.*you want to see.*\[^\r\n\]*" \
"info macro -- <EOL>" "info macro -- <EOL>"
gdb_test "info macro -- " \ gdb_test "info macro -- " \
"You must follow.*with the name.*you want to see.*\[^\r\n\]*\[\r\n\]" \ "You must follow.*with the name.*you want to see.*\[^\r\n\]*" \
"info macro -- <EOL>" "info macro -- <EOL>"
gdb_test "info macro -invalid-option" \ gdb_test "info macro -invalid-option" \

View File

@@ -53,4 +53,4 @@ gdb_test "info register \$fp" "${valueof_fp}.*"
# Regression test for # Regression test for
# http://sourceware.org/bugzilla/show_bug.cgi?id=12659 # http://sourceware.org/bugzilla/show_bug.cgi?id=12659
gdb_test "info register pc fp" \ gdb_test "info register pc fp" \
"pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}\[\r\n\]+" "pc +${valueof_pc}\[ \t\]+${valueof_pc} <.*>\[\r\n\]+fp +${valueof_fp}\[ \t\]+${valueof_fp}"

View File

@@ -225,7 +225,7 @@ gdb_test "continue" \
gdb_test "continue" \ gdb_test "continue" \
".*Breakpoint.*pendfunc1.*at.*pendshr.c:$bp2_loc.* ".*Breakpoint.*pendfunc1.*at.*pendshr.c:$bp2_loc.*
\[$\]1 = 1." \ \\\$1 = 1" \
"continue to resolved breakpoint 1" "continue to resolved breakpoint 1"
# #

View File

@@ -140,7 +140,7 @@ gdb_test "step" {baz \(.*?\);} "step into foo 1"
gdb_test "finish" {Run till exit.*bar \(\).*baz.*} "finish out of foo 1" gdb_test "finish" {Run till exit.*bar \(\).*baz.*} "finish out of foo 1"
gdb_test "next" {foo \(2\);} "next over baz in bar" gdb_test "next" {foo \(2\);} "next over baz in bar"
gdb_test "step" {baz \(.*?\);} "step into foo 2" gdb_test "step" {baz \(.*?\);} "step into foo 2"
gdb_test "next" "\}\[\r\n\]+" "next over baz in foo" gdb_test "next" "\}" "next over baz in foo"
gdb_test "step" "bar \\(\\).*}\[\r\n\]+.*" "step out of foo back into bar" gdb_test "step" "bar \\(\\).*}" "step out of foo back into bar"
gdb_continue_to_end gdb_continue_to_end

View File

@@ -297,10 +297,10 @@ proc_with_prefix test_setshow_history {} {
"The filename in which to record the command history is \"[string_to_regexp $HOME]/foobar.baz\"..*" \ "The filename in which to record the command history is \"[string_to_regexp $HOME]/foobar.baz\"..*" \
"show history filename (~/foobar.baz)" "show history filename (~/foobar.baz)"
gdb_test "p \$_gdb_setting(\"history filename\")" \ gdb_test "p \$_gdb_setting(\"history filename\")" \
" = \"[string_to_regexp $HOME]/foobar.baz\"..*" \ " = \"[string_to_regexp $HOME]/foobar.baz\"" \
"_gdb_setting history filename" "_gdb_setting history filename"
gdb_test "p \$_gdb_setting_str(\"history filename\")" \ gdb_test "p \$_gdb_setting_str(\"history filename\")" \
" = \"[string_to_regexp $HOME]/foobar.baz\"..*" \ " = \"[string_to_regexp $HOME]/foobar.baz\"" \
"_gdb_setting_str history filename" "_gdb_setting_str history filename"
#get current working directory #get current working directory

View File

@@ -39,7 +39,7 @@ gdb_test "until $bp_location1" \
# Verify that a malformed "advance" is gracefully caught. # Verify that a malformed "advance" is gracefully caught.
# #
gdb_test "until 80 then stop" \ gdb_test "until 80 then stop" \
"malformed linespec error: unexpected string, \"then stop\"." \ "malformed linespec error: unexpected string, \"then stop\"" \
"malformed until" "malformed until"
# Rerun up to factorial, outer invocation # Rerun up to factorial, outer invocation

View File

@@ -44,9 +44,9 @@ proc watch { expr } {
proc expect_watchpoint { expr old new } { proc expect_watchpoint { expr old new } {
with_test_prefix "$expr: $old->$new" { with_test_prefix "$expr: $old->$new" {
set expr_re [string_to_regexp $expr] set expr_re [string_to_regexp $expr]
gdb_test "print $expr" "\\$\\d+ = $old\\s" "print expression before" gdb_test "print $expr" "\\$\\d+ = $old" "print expression before"
gdb_test "continue" "$expr_re\\s.*Old value = $old\\s+New value = $new\\s.*" gdb_test "continue" "$expr_re\\s.*Old value = $old\\s+New value = $new\\s.*"
gdb_test "print $expr" "\\$\\d+ = $new\\s" "print expression after" gdb_test "print $expr" "\\$\\d+ = $new" "print expression after"
} }
} }

View File

@@ -51,6 +51,4 @@ if ![runto opaque_routine] {
# correctly when frame #0 (the frame which does not have any debugging # correctly when frame #0 (the frame which does not have any debugging
# info) is the selected frame. # info) is the selected frame.
gdb_test "bt full" \ gdb_test "bt full" ".*\[\r\n\]+ *my_table = \\{0, 1, 2\\}"
".*\[\r\n\]+ *my_table = \\{0, 1, 2\\}\[\r\n\]+.*"

View File

@@ -30,8 +30,8 @@ if ![runto_main] {
gdb_test_no_output "set record btrace bts buffer-size 1" gdb_test_no_output "set record btrace bts buffer-size 1"
gdb_test_no_output "set record btrace pt buffer-size 1" gdb_test_no_output "set record btrace pt buffer-size 1"
gdb_test "show record btrace bts buffer-size" "The record/replay bts buffer size is 1\.\r" gdb_test "show record btrace bts buffer-size" "The record/replay bts buffer size is 1\."
gdb_test "show record btrace pt buffer-size" "The record/replay pt buffer size is 1\.\r" gdb_test "show record btrace pt buffer-size" "The record/replay pt buffer size is 1\."
gdb_test_no_output "record btrace" gdb_test_no_output "record btrace"
gdb_test "info record" [multi_line \ gdb_test "info record" [multi_line \

View File

@@ -187,7 +187,7 @@ set expected_range [multi_line \
gdb_test "record function-call-history 4,10" $expected_range gdb_test "record function-call-history 4,10" $expected_range
gdb_test "record function-call-history 4,+7" $expected_range gdb_test "record function-call-history 4,+7" $expected_range
gdb_test "record function-call-history 10,-7" $expected_range gdb_test "record function-call-history 10,-7" $expected_range
gdb_test "record function-call-history 4,4" "4\tinc\r" gdb_test "record function-call-history 4,4" "4\tinc"
# set bp after fib recursion and continue # set bp after fib recursion and continue
set bp_location [gdb_get_line_number "bp.2" $testfile.c] set bp_location [gdb_get_line_number "bp.2" $testfile.c]

View File

@@ -69,7 +69,7 @@ gdb_test "record instruction-history 3,7" [multi_line \
"4\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tdec %eax" \ "4\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tdec %eax" \
"5\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \ "5\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
"6\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ "6\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \
"7\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>\r" \ "7\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
] ]
gdb_test "record instruction-history /f 3,+5" [multi_line \ gdb_test "record instruction-history /f 3,+5" [multi_line \
@@ -77,7 +77,7 @@ gdb_test "record instruction-history /f 3,+5" [multi_line \
"4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \ "4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \
"5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \ "5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
"6\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ "6\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \
"7\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>\r" \ "7\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
] ]
gdb_test "record instruction-history /p 7,-5" [multi_line \ gdb_test "record instruction-history /p 7,-5" [multi_line \
@@ -85,7 +85,7 @@ gdb_test "record instruction-history /p 7,-5" [multi_line \
"4\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tdec %eax" \ "4\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tdec %eax" \
"5\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \ "5\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
"6\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ "6\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \
"7\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>\r" \ "7\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
] ]
gdb_test "record instruction-history /pf 3,7" [multi_line \ gdb_test "record instruction-history /pf 3,7" [multi_line \
@@ -93,10 +93,10 @@ gdb_test "record instruction-history /pf 3,7" [multi_line \
"4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \ "4\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tdec %eax" \
"5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \ "5\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tjmp 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
"6\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \ "6\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tcmp \\\$0x0,%eax" \
"7\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>\r" \ "7\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>" \
] ]
gdb_test "record instruction-history 3,3" "3\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>\r" gdb_test "record instruction-history 3,3" "3\t 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>:\tje 0x\[0-9a-f\]+ <loop\\+\[0-9\]+>"
# the following tests are checking the iterators # the following tests are checking the iterators
# to avoid lots of regexps, we just check the number of lines that # to avoid lots of regexps, we just check the number of lines that

View File

@@ -149,7 +149,7 @@ gdb_test "record goto 2" ".*fun4 \\(\\) at record_goto.c:40.*"
gdb_test "record function-call-history /ci -" [multi_line \ gdb_test "record function-call-history /ci -" [multi_line \
"1\tmain\tinst 1,1" \ "1\tmain\tinst 1,1" \
"2\t fun4\tinst 2,4" \ "2\t fun4\tinst 2,4" \
"3\t fun1\tinst 5,8\r" \ "3\t fun1\tinst 5,8" \
] "function-call-history from 2 backwards" ] "function-call-history from 2 backwards"
# check that we're filling up the context correctly # check that we're filling up the context correctly
@@ -173,7 +173,7 @@ gdb_test "record function-call-history /ci" [multi_line \
gdb_test "record instruction-history" [multi_line \ gdb_test "record instruction-history" [multi_line \
"38.*" \ "38.*" \
"39.*" \ "39.*" \
"40.*\r" \ "40.*" \
] "instruction-history from end forwards" ] "instruction-history from end forwards"
# we should get the exact same history from the second to last instruction # we should get the exact same history from the second to last instruction
@@ -183,12 +183,12 @@ gdb_test "record goto 39" ".*fun4 \\(\\) at record_goto.c:44.*"
gdb_test "record function-call-history /ci" [multi_line \ gdb_test "record function-call-history /ci" [multi_line \
"14\t fun2\tinst 35,36" \ "14\t fun2\tinst 35,36" \
"15\t fun3\tinst 37,38" \ "15\t fun3\tinst 37,38" \
"16\t fun4\tinst 39,40\r" \ "16\t fun4\tinst 39,40" \
] "function-call-history from 39 forwards" ] "function-call-history from 39 forwards"
# check that we're filling up the context correctly # check that we're filling up the context correctly
gdb_test "record instruction-history" [multi_line \ gdb_test "record instruction-history" [multi_line \
"38.*" \ "38.*" \
"39.*" \ "39.*" \
"40.*\r" \ "40.*" \
] "instruction-history from 39 forwards" ] "instruction-history from 39 forwards"

View File

@@ -172,5 +172,5 @@ gdb_test "print foo(inc)"\
"The type. 'incomplete .' isn't fully known to GDB.*"\ "The type. 'incomplete .' isn't fully known to GDB.*"\
"unsuccessful because declaration" "unsuccessful because declaration"
gdb_test "print foo(ip)"\ gdb_test "print foo(ip)"\
"Cannot resolve function foo to any overloaded instance."\ "Cannot resolve function foo to any overloaded instance"\
"unsuccessful because incorrect" "unsuccessful because incorrect"

View File

@@ -21,8 +21,8 @@
# Test the help messages. # Test the help messages.
proc test_help {} { proc test_help {} {
set first_component_help "Print the first class/namespace component of NAME" set first_component_help "Print the first class/namespace component of NAME\\."
set namespace_help "Deprecated placeholder for removed functionality." set namespace_help "Deprecated placeholder for removed functionality\\."
test_prefix_command_help {"maintenance cplus"} { test_prefix_command_help {"maintenance cplus"} {
"C\\+\\+ maintenance commands\.\[\r\n\]+" "C\\+\\+ maintenance commands\.\[\r\n\]+"
@@ -36,8 +36,8 @@ proc test_help {} {
gdb_test "maint cp" $multiple_help_body gdb_test "maint cp" $multiple_help_body
gdb_test "help maint cp first_component" "${first_component_help}." gdb_test "help maint cp first_component" "${first_component_help}"
gdb_test "help maint cp namespace" "${namespace_help}." gdb_test "help maint cp namespace" "${namespace_help}"
} }
# This is used when NAME should contain only a single component. Be # This is used when NAME should contain only a single component. Be

View File

@@ -241,11 +241,11 @@ for {set idx 0} {$idx < [llength $overloads]} {incr idx} {
} }
# Verify the breakpoints. # Verify the breakpoints.
set bptable "Num\[\t \]+Type\[\t \]+Disp Enb Address\[\t \]+What.*\[\r\n]+" set bptable "Num\[\t \]+Type\[\t \]+Disp Enb Address\[\t \]+What\\s*\r\n"
append bptable "\[0-9\]+\[\t \]+breakpoint\[\t \]+keep\[\t \]y\[\t \]+$hex\[\t \]+in main(\\((|void)\\))? at.*$srcfile:49\[\r\n\]+" append bptable "\[0-9\]+\[\t \]+breakpoint\[\t \]+keep\[\t \]y\[\t \]+$hex\[\t \]+in main(\\((|void)\\))? at.*$srcfile:49\r\n"
append bptable "\[\t \]+breakpoint already hit 1 time\[\r\n\]+." append bptable "\[\t \]+breakpoint already hit 1 time"
foreach ovld $overloads { foreach ovld $overloads {
append bptable [format "\[0-9\]+\[\t \]+breakpoint\[\t \]+keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(%s\\) at.*$srcfile:%d\[\r\n\]+" $ovld \ append bptable [format "\r\n\[0-9\]+\[\t \]+breakpoint\[\t \]+keep y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(%s\\) at.*$srcfile:%d" $ovld \
$line($type_map("$ovld"))] $line($type_map("$ovld"))]
} }
gdb_test "info break" $bptable "breakpoint info (after setting one-by-one)" gdb_test "info break" $bptable "breakpoint info (after setting one-by-one)"
@@ -366,12 +366,12 @@ gdb_expect {
} }
# Create the breakpoint table for "info breakpoint". # Create the breakpoint table for "info breakpoint".
set bptable "Num\[\t \]+Type\[\t \]+Disp Enb Address\[\t \]+What.*\[\r\n]+" set bptable "Num\[\t \]+Type\[\t \]+Disp Enb Address\[\t \]+What\\s*\r\n"
append bptable "\[0-9\]+\[\t \]+breakpoint\[\t \]+keep\[\t \]y\[\t \]+<MULTIPLE>.*\[\r\n\]+" append bptable "\[0-9\]+\[\t \]+breakpoint\[\t \]+keep\[\t \]y\[\t \]+<MULTIPLE>\\s*"
foreach ovld {void char signed_char unsigned_char short_int \ foreach ovld {void char signed_char unsigned_char short_int \
unsigned_short_int int unsigned_int long_int \ unsigned_short_int int unsigned_int long_int \
unsigned_long_int float double} { unsigned_long_int float double} {
append bptable [format "\[0-9\]+.\[0-9\]+\[\t \]+y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(%s\\) at.*$srcfile:%d\[\r\n\]+" \ append bptable [format "\r\n\[0-9\]+.\[0-9\]+\[\t \]+y\[\t \]+$hex\[\t \]+in foo::overload1arg\\(%s\\) at.*$srcfile:%d" \
$types($ovld) $line($ovld)] $types($ovld) $line($ovld)]
} }

View File

@@ -67,9 +67,9 @@ gdb_test "print one / two" "\\\$\[0-9\]* = {x = 0, y = 0}"
gdb_test "print one % two" "\\\$\[0-9\]* = {x = 2, y = 3}" gdb_test "print one % two" "\\\$\[0-9\]* = {x = 2, y = 3}"
gdb_test "print one && two" "\\\$\[0-9\]* = 1\[\r\n\]" gdb_test "print one && two" "\\\$\[0-9\]* = 1"
gdb_test "print one || two" "\\\$\[0-9\]* = 1\[\r\n\]" gdb_test "print one || two" "\\\$\[0-9\]* = 1"
gdb_test "print one & two" "\\\$\[0-9\]* = {x = 0, y = 1}" gdb_test "print one & two" "\\\$\[0-9\]* = {x = 0, y = 1}"
@@ -77,18 +77,18 @@ gdb_test "print one | two" "\\\$\[0-9\]* = {x = 6, y = 7}"
gdb_test "print one ^ two" "\\\$\[0-9\]* = {x = 6, y = 6}" gdb_test "print one ^ two" "\\\$\[0-9\]* = {x = 6, y = 6}"
gdb_test "print one < two" "\\\$\[0-9\]* = 1\[\r\n\]" gdb_test "print one < two" "\\\$\[0-9\]* = 1"
gdb_test "print one <= two" "\\\$\[0-9\]* = 1\[\r\n\]" gdb_test "print one <= two" "\\\$\[0-9\]* = 1"
gdb_test "print one > two" "\\\$\[0-9\]* = 0\[\r\n\]" gdb_test "print one > two" "\\\$\[0-9\]* = 0"
gdb_test "print one >= two" "\\\$\[0-9\]* = 0\[\r\n\]" gdb_test "print one >= two" "\\\$\[0-9\]* = 0"
gdb_test "print one == two" "\\\$\[0-9\]* = 0\[\r\n\]" gdb_test "print one == two" "\\\$\[0-9\]* = 0"
gdb_test "print one.operator== (two)" "\\\$\[0-9\]* = 0\[\r\n\]" gdb_test "print one.operator== (two)" "\\\$\[0-9\]* = 0"
gdb_test "print one != two" "\\\$\[0-9\]* = 1\[\r\n\]" gdb_test "print one != two" "\\\$\[0-9\]* = 1"
# Can't really check the output of this one without knowing # Can't really check the output of this one without knowing
# target integer width. Make sure we don't try to call # target integer width. Make sure we don't try to call
@@ -98,7 +98,7 @@ gdb_test "print one << 31" "\\\$\[0-9\]* = {x = -?\[0-9\]*, y = -?\[0-9\]*}"
# Should be fine even on < 32-bit targets. # Should be fine even on < 32-bit targets.
gdb_test "print one >> 31" "\\\$\[0-9\]* = {x = 0, y = 0}" gdb_test "print one >> 31" "\\\$\[0-9\]* = {x = 0, y = 0}"
gdb_test "print !one" "\\\$\[0-9\]* = 0\[\r\n\]" gdb_test "print !one" "\\\$\[0-9\]* = 0"
# Assumes 2's complement. So does everything... # Assumes 2's complement. So does everything...
gdb_test "print +one" "\\\$\[0-9\]* = {x = 2, y = 3}" gdb_test "print +one" "\\\$\[0-9\]* = {x = 2, y = 3}"

View File

@@ -228,7 +228,7 @@ proc test_virtual_calls {} {
proc make_one_vtable_result {name args} { proc make_one_vtable_result {name args} {
global hex global hex
set nls "\[\r\n\]+" set nls "\r\n"
set result "vtable for '${name}' @ $hex .subobject @ $hex.:$nls" set result "vtable for '${name}' @ $hex .subobject @ $hex.:$nls"
set count 0 set count 0
@@ -237,9 +237,20 @@ proc make_one_vtable_result {name args} {
incr count incr count
} }
# Remove the last instance of $nls.
if {$count > 0} {
set result [string range $result 0 end-[string length $nls]]
}
verbose -log "APB: result: '$result'"
return $result return $result
} }
proc vtable_seq { args } {
return [join "\r\n\r\n" $args]
}
# Test "info vtbl". # Test "info vtbl".
proc test_info_vtbl {} { proc test_info_vtbl {} {
@@ -255,12 +266,12 @@ proc test_info_vtbl {} {
set vt_D2 [make_one_vtable_result D "non-virtual thunk to E::vg" D::vd] set vt_D2 [make_one_vtable_result D "non-virtual thunk to E::vg" D::vd]
set vt_E [make_one_vtable_result E E::f E::vg E::vv] set vt_E [make_one_vtable_result E E::f E::vg E::vv]
gdb_test "info vtbl a" "${vt_A}${vt_V}" gdb_test "info vtbl a" [vtable_seq ${vt_A} ${vt_V}]
gdb_test "info vtbl b" "${vt_B}${vt_V}" gdb_test "info vtbl b" [vtable_seq ${vt_B} ${vt_V}]
gdb_test "info vtbl c" "${vt_V}" gdb_test "info vtbl c" "${vt_V}"
gdb_test "info vtbl d" "${vt_D}${vt_V}" gdb_test "info vtbl d" [vtable_seq ${vt_D} ${vt_V}]
gdb_test "info vtbl e" "${vt_E}${vt_D2}${vt_V2}" gdb_test "info vtbl e" [vtable_seq ${vt_E} ${vt_D2} ${vt_V2}]
gdb_test "info vtbl pEe" "${vt_E}${vt_D2}${vt_V2}" gdb_test "info vtbl pEe" [vtable_seq ${vt_E} ${vt_D2} ${vt_V2}]
gdb_test "info vtbl" "Argument required.*" gdb_test "info vtbl" "Argument required.*"
gdb_test "info vtbl va" \ gdb_test "info vtbl va" \

View File

@@ -179,7 +179,7 @@ proc_with_prefix test_bkpt_cond_and_cmds { } {
gdb_scm_test_silent_cmd "guile (define blist (breakpoints))" \ gdb_scm_test_silent_cmd "guile (define blist (breakpoints))" \
"get breakpoint list 6" "get breakpoint list 6"
gdb_test "guile (print (breakpoint-commands (list-ref blist (- (length blist) 1))))" \ gdb_test "guile (print (breakpoint-commands (list-ref blist (- (length blist) 1))))" \
"print \"Command for breakpoint has been executed.\".*print result" "print \"Command for breakpoint has been executed.\".*print result\r\n"
} }
proc_with_prefix test_bkpt_invisible { } { proc_with_prefix test_bkpt_invisible { } {

View File

@@ -93,7 +93,7 @@ gdb_test_multiline "input command to throw error" \
" (throw-user-error \"you lose! ~a\" arg))))" "" \ " (throw-user-error \"you lose! ~a\" arg))))" "" \
"end" "" "end" ""
gdb_test "test-error-cmd ugh" "ERROR: you lose! ugh" "call error command" gdb_test "test-error-cmd ugh" "ERROR: you lose! ugh\r\n" "call error command"
# Test string->argv. # Test string->argv.

View File

@@ -74,7 +74,11 @@ proc break_info_1 {num args} {
} }
# Add function/source file info. # Add function/source file info.
append result "in $func at .*$source${end}" append result "in $func at .*$source"
if {$i < $locs} {
append result ${end}
}
} }
return $result return $result

View File

@@ -57,7 +57,7 @@ proc_with_prefix test_bkpt_basic { } {
gdb_test "python print (blist\[0\])" \ gdb_test "python print (blist\[0\])" \
"<gdb.Breakpoint object at $hex>" "Check obj exists @main" "<gdb.Breakpoint object at $hex>" "Check obj exists @main"
gdb_test "python print (blist\[0\].location)" \ gdb_test "python print (blist\[0\].location)" \
"main." "Check breakpoint location @main" "main" "Check breakpoint location @main"
gdb_test "python print (blist\[0\].pending)" "False" \ gdb_test "python print (blist\[0\].pending)" "False" \
"Check pending status of main breakpoint" "Check pending status of main breakpoint"
@@ -75,7 +75,7 @@ proc_with_prefix test_bkpt_basic { } {
gdb_test "python print (blist\[0\])" \ gdb_test "python print (blist\[0\])" \
"<gdb.Breakpoint object at $hex>" "Check obj exists @main 2" "<gdb.Breakpoint object at $hex>" "Check obj exists @main 2"
gdb_test "python print (blist\[0\].location)" \ gdb_test "python print (blist\[0\].location)" \
"main." "Check breakpoint location @main 2" "main" "Check breakpoint location @main 2"
gdb_test "python print (blist\[1\])" \ gdb_test "python print (blist\[1\])" \
"<gdb.Breakpoint object at $hex>" "Check obj exists @mult_line" "<gdb.Breakpoint object at $hex>" "Check obj exists @mult_line"
@@ -206,7 +206,7 @@ proc_with_prefix test_bkpt_cond_and_cmds { } {
gdb_py_test_silent_cmd "python last_bp = blist\[len(blist)-1\]" \ gdb_py_test_silent_cmd "python last_bp = blist\[len(blist)-1\]" \
"Find last breakpoint" 0 "Find last breakpoint" 0
gdb_test "python print (last_bp.commands)" \ gdb_test "python print (last_bp.commands)" \
"print \"Command for breakpoint has been executed.\".*print result" "print \"Command for breakpoint has been executed.\".*print result\r\n"
gdb_test_no_output "python last_bp.commands = 'echo hi\\necho there'" \ gdb_test_no_output "python last_bp.commands = 'echo hi\\necho there'" \
"set commands" "set commands"

View File

@@ -105,11 +105,11 @@ with_test_prefix "module global variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print aglobal" " = 0$newline" "module global reverse-breakpoint" gdb_test "print aglobal" " = 0" "module global reverse-breakpoint"
gdb_test "step" " module global post-change .*" gdb_test "step" " module global post-change .*"
gdb_test "print aglobal" " = 1$newline" "module global forward past bp" gdb_test "print aglobal" " = 1" "module global forward past bp"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print aglobal" " = 0$newline" "module global reverse-step to bp" gdb_test "print aglobal" " = 0" "module global reverse-step to bp"
} }
# Module static variable, reverse # Module static variable, reverse
@@ -120,11 +120,11 @@ with_test_prefix "module static variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print astatic" " = 0$newline" "module static reverse-breakpoint" gdb_test "print astatic" " = 0" "module static reverse-breakpoint"
gdb_test "step" " module static post-change .*" gdb_test "step" " module static post-change .*"
gdb_test "print astatic" " = 1$newline" "module static forward" gdb_test "print astatic" " = 1" "module static forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print astatic" " = 0$newline" "module static reverse-step" gdb_test "print astatic" " = 0" "module static reverse-step"
} }
# Function static variable, reverse # Function static variable, reverse
@@ -135,11 +135,11 @@ with_test_prefix "function static variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "function static reverse-breakpoint" gdb_test "print a" " = 0" "function static reverse-breakpoint"
gdb_test "step" " function static post-change .*" gdb_test "step" " function static post-change .*"
gdb_test "print a" " = 1$newline" "function static forward" gdb_test "print a" " = 1" "function static forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" "function static reverse-step" gdb_test "print a" " = 0" "function static reverse-step"
} }
# Auto variable, reverse # Auto variable, reverse
@@ -150,11 +150,11 @@ with_test_prefix "auto variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "auto var reverse-breakpoint" gdb_test "print a" " = 0" "auto var reverse-breakpoint"
gdb_test "step" " auto post-change .*" gdb_test "step" " auto post-change .*"
gdb_test "print a" " = 1$newline" "auto var forward" gdb_test "print a" " = 1" "auto var forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" "auto var reverse-step" gdb_test "print a" " = 0" "auto var reverse-step"
} }
# Register variable, reverse # Register variable, reverse
@@ -165,12 +165,12 @@ with_test_prefix "register variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "register var reverse-breakpoint" gdb_test "print a" " = 0" "register var reverse-breakpoint"
gdb_test "step" " register post-change .*" gdb_test "step" " register post-change .*"
gdb_test "print a" " = 1$newline" \ gdb_test "print a" " = 1" \
"register var step post-change, first time" "register var step post-change, first time"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" "register var reverse step-to" gdb_test "print a" " = 0" "register var reverse step-to"
} }
# Proceed to beginning of main # Proceed to beginning of main
@@ -189,12 +189,12 @@ with_test_prefix "register variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "register var forward-breakpoint" gdb_test "print a" " = 0" "register var forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "register var forward step-to" gdb_test "print a" " = 0" "register var forward step-to"
gdb_test "step" " register post-change .*" "step, 2" gdb_test "step" " register post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" \ gdb_test "print a" " = 1" \
"register var step post-change, second time" "register var step post-change, second time"
} }
@@ -206,12 +206,12 @@ with_test_prefix "auto variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "auto var forward-breakpoint" gdb_test "print a" " = 0" "auto var forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "auto var forward step-to" gdb_test "print a" " = 0" "auto var forward step-to"
gdb_test "step" " auto post-change .*" "step, 2" gdb_test "step" " auto post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" "auto var step post-change" gdb_test "print a" " = 1" "auto var step post-change"
} }
# Function static variable, forward # Function static variable, forward
@@ -222,12 +222,12 @@ with_test_prefix "function static variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "function static forward-breakpoint" gdb_test "print a" " = 0" "function static forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "function static forward step-to" gdb_test "print a" " = 0" "function static forward step-to"
gdb_test "step" " function static post-change .*" "step, 2" gdb_test "step" " function static post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" "function static step post-change" gdb_test "print a" " = 1" "function static step post-change"
} }
# Module static variable, forward # Module static variable, forward
@@ -238,12 +238,12 @@ with_test_prefix "module static variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print astatic" " = 0$newline" "module static forward-breakpoint" gdb_test "print astatic" " = 0" "module static forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print astatic" " = 0$newline" "module static forward step-to" gdb_test "print astatic" " = 0" "module static forward step-to"
gdb_test "step" " module static post-change .*" "step, 2" gdb_test "step" " module static post-change .*" "step, 2"
gdb_test "print astatic" " = 1$newline" "module static step post-change" gdb_test "print astatic" " = 1" "module static step post-change"
} }
# Module global variable, forward # Module global variable, forward
@@ -254,11 +254,11 @@ with_test_prefix "module global variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print aglobal" " = 0$newline" "module global forward-breakpoint" gdb_test "print aglobal" " = 0" "module global forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print aglobal" " = 0$newline" "module global forward step-to" gdb_test "print aglobal" " = 0" "module global forward step-to"
gdb_test "step" " module global post-change .*" "step, 2" gdb_test "step" " module global post-change .*" "step, 2"
gdb_test "print aglobal" " = 1$newline" "module global step post-change" gdb_test "print aglobal" " = 1" "module global step post-change"
} }

View File

@@ -80,11 +80,11 @@ with_test_prefix "module global variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print aglobal" " = 0$newline" "module global reverse-breakpoint" gdb_test "print aglobal" " = 0" "module global reverse-breakpoint"
gdb_test "step" " module global post-change .*" gdb_test "step" " module global post-change .*"
gdb_test "print aglobal" " = 1$newline" "module global forward past bp" gdb_test "print aglobal" " = 1" "module global forward past bp"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print aglobal" " = 0$newline" "module global reverse-step to bp" gdb_test "print aglobal" " = 0" "module global reverse-step to bp"
} }
# Module static variable, reverse # Module static variable, reverse
@@ -95,11 +95,11 @@ with_test_prefix "module static variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print astatic" " = 0$newline" "module static reverse-breakpoint" gdb_test "print astatic" " = 0" "module static reverse-breakpoint"
gdb_test "step" " module static post-change .*" gdb_test "step" " module static post-change .*"
gdb_test "print astatic" " = 1$newline" "module static forward" gdb_test "print astatic" " = 1" "module static forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print astatic" " = 0$newline" "module static reverse-step" gdb_test "print astatic" " = 0" "module static reverse-step"
} }
# Function static variable, reverse # Function static variable, reverse
@@ -110,11 +110,11 @@ with_test_prefix "function static variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "function static reverse-breakpoint" gdb_test "print a" " = 0" "function static reverse-breakpoint"
gdb_test "step" " function static post-change .*" gdb_test "step" " function static post-change .*"
gdb_test "print a" " = 1$newline" "function static forward" gdb_test "print a" " = 1" "function static forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" "function static reverse-step" gdb_test "print a" " = 0" "function static reverse-step"
} }
# Auto variable, reverse # Auto variable, reverse
@@ -125,11 +125,11 @@ with_test_prefix "auto variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "auto var reverse-breakpoint" gdb_test "print a" " = 0" "auto var reverse-breakpoint"
gdb_test "step" " auto post-change .*" gdb_test "step" " auto post-change .*"
gdb_test "print a" " = 1$newline" "auto var forward" gdb_test "print a" " = 1" "auto var forward"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" "auto var reverse-step" gdb_test "print a" " = 0" "auto var reverse-step"
} }
# Register variable, reverse # Register variable, reverse
@@ -140,11 +140,11 @@ with_test_prefix "register variable, reverse" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc" gdb_test "reverse-continue" "$srcfile:$breakloc.*" "reverse to $breakloc"
gdb_test "print a" " = 0$newline" "register var reverse-breakpoint" gdb_test "print a" " = 0" "register var reverse-breakpoint"
gdb_test "step" " register post-change .*" gdb_test "step" " register post-change .*"
gdb_test "print a" " = 1$newline" "register var step post-change" gdb_test "print a" " = 1" "register var step post-change"
gdb_test "reverse-step" "$newline$breakloc.*" gdb_test "reverse-step" "$newline$breakloc.*"
gdb_test "print a" " = 0$newline" \ gdb_test "print a" " = 0" \
"register var reverse step-to, first time" "register var reverse step-to, first time"
} }
@@ -164,12 +164,12 @@ with_test_prefix "register variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "register var forward-breakpoint" gdb_test "print a" " = 0" "register var forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "register var forward step-to" gdb_test "print a" " = 0" "register var forward step-to"
gdb_test "step" " register post-change .*" "step, 2" gdb_test "step" " register post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" \ gdb_test "print a" " = 1" \
"register var step post-change, second time" "register var step post-change, second time"
} }
@@ -181,12 +181,12 @@ with_test_prefix "auto variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "auto var forward-breakpoint" gdb_test "print a" " = 0" "auto var forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "auto var forward step-to" gdb_test "print a" " = 0" "auto var forward step-to"
gdb_test "step" " auto post-change .*" "step, 2" gdb_test "step" " auto post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" "auto var step post-change" gdb_test "print a" " = 1" "auto var step post-change"
} }
# Function static variable, forward # Function static variable, forward
@@ -197,12 +197,12 @@ with_test_prefix "function static variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print a" " = 0$newline" "function static forward-breakpoint" gdb_test "print a" " = 0" "function static forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print a" " = 0$newline" "function static forward step-to" gdb_test "print a" " = 0" "function static forward step-to"
gdb_test "step" " function static post-change .*" "step, 2" gdb_test "step" " function static post-change .*" "step, 2"
gdb_test "print a" " = 1$newline" "function static step post-change" gdb_test "print a" " = 1" "function static step post-change"
} }
# Module static variable, forward # Module static variable, forward
@@ -213,12 +213,12 @@ with_test_prefix "module static variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print astatic" " = 0$newline" "module static forward-breakpoint" gdb_test "print astatic" " = 0" "module static forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print astatic" " = 0$newline" "module static forward step-to" gdb_test "print astatic" " = 0" "module static forward step-to"
gdb_test "step" " module static post-change .*" "step, 2" gdb_test "step" " module static post-change .*" "step, 2"
gdb_test "print astatic" " = 1$newline" "module static step post-change" gdb_test "print astatic" " = 1" "module static step post-change"
} }
# Module global variable, forward # Module global variable, forward
@@ -229,10 +229,10 @@ with_test_prefix "module global variable, forward" {
gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*" gdb_test "tbreak $breakloc" "$srcfile, line $breakloc.*"
gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc" gdb_test "continue" "$srcfile:$breakloc.*" "forward to $breakloc"
gdb_test "print aglobal" " = 0$newline" "module global forward-breakpoint" gdb_test "print aglobal" " = 0" "module global forward-breakpoint"
gdb_test "reverse-step" "hide.*" gdb_test "reverse-step" "hide.*"
gdb_test "step" "$newline$breakloc.*" "step, 1" gdb_test "step" "$newline$breakloc.*" "step, 1"
gdb_test "print aglobal" " = 0$newline" "module global forward step-to" gdb_test "print aglobal" " = 0" "module global forward step-to"
gdb_test "step" " module global post-change .*" "step, 2" gdb_test "step" " module global post-change .*" "step, 2"
gdb_test "print aglobal" " = 1$newline" "module global step post-change" gdb_test "print aglobal" " = 1" "module global step post-change"
} }

View File

@@ -40,14 +40,14 @@ set eol "\[ \t\]*\[\n\r\]+"
gdb_test "ptype v1" "type = struct a {$eol gdb_test "ptype v1" "type = struct a {$eol
int x;$eol int x;$eol
int y;$eol int y;$eol
}$eol" }"
if {[test_debug_format "stabs"]} { if {[test_debug_format "stabs"]} {
setup_kfail "gdb/1602" *-*-* setup_kfail "gdb/1602" *-*-*
} }
gdb_test "ptype v2" "type = struct a {$eol gdb_test "ptype v2" "type = struct a {$eol
const char .c;$eol const char .c;$eol
}$eol" }"
if {[test_debug_format "stabs"]} { if {[test_debug_format "stabs"]} {
setup_kfail "gdb/1603" *-*-* setup_kfail "gdb/1603" *-*-*

View File

@@ -60,7 +60,7 @@ proc do_test { fork_func follow target-non-stop non-stop displaced-stepping } {
# Verify that the catchpoint is mentioned in an "info breakpoints", # Verify that the catchpoint is mentioned in an "info breakpoints",
# and further that the catchpoint mentions no process id. # and further that the catchpoint mentions no process id.
gdb_test "info breakpoints" \ gdb_test "info breakpoints" \
".*catchpoint.*keep y.*fork\[\r\n\]+" \ ".*catchpoint.*keep y.*fork" \
"info breakpoints before fork" "info breakpoints before fork"
gdb_test "continue" \ gdb_test "continue" \

View File

@@ -51,7 +51,7 @@ clean_restart ${testfile}
set horiz "\[^\n\r\]*" set horiz "\[^\n\r\]*"
# regexp for newline # regexp for newline
set nl "\[\r\n\]+" set nl "\r\n"
set timeout 30 set timeout 30
@@ -138,7 +138,7 @@ proc load_core { filename } {
# The thread2 thread should be marked as the current thread. # The thread2 thread should be marked as the current thread.
gdb_test "info threads" "\\* ${horiz} thread2 .*${nl}" \ gdb_test "info threads" "\\* ${horiz} thread2 .*" \
"thread2 is current thread in corefile" "thread2 is current thread in corefile"
} }

View File

@@ -71,48 +71,51 @@ gdb_trace_setactions "5.1b: set actions for first tracepoint" \
"collect gdb_char_test" "^$" "collect gdb_char_test" "^$"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+collect gdb_char_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_char_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"5.1c: verify actions set for first tracepoint" "\[\t \]+not installed on target"] \
"5.1c: verify actions set for first tracepoint"
gdb_trace_setactions "5.1d: set actions for second tracepoint" \ gdb_trace_setactions "5.1d: set actions for second tracepoint" \
"$trcpt2" \ "$trcpt2" \
"collect gdb_short_test" "^$" "collect gdb_short_test" "^$"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+collect gdb_char_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_char_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_short_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_short_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"5.1e: verify actions set for second tracepoint" "\[\t \]+not installed on target"] \
"5.1e: verify actions set for second tracepoint"
gdb_trace_setactions "5.2a: set actions for last (default) tracepoint" \ gdb_trace_setactions "5.2a: set actions for last (default) tracepoint" \
"" \ "" \
"collect gdb_long_test" "^$" "collect gdb_long_test" "^$"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+collect gdb_char_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_char_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_short_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_short_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_long_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target." \ "\[\t \]+collect gdb_long_test" \
"5.2b: verify actions set for second tracepoint" "\[\t \]+not installed on target"] \
"5.2b: verify actions set for second tracepoint"
# 5.3 replace actions set earlier # 5.3 replace actions set earlier
@@ -121,17 +124,18 @@ gdb_trace_setactions "5.3a: reset actions for first tracepoint" \
"collect gdb_struct1_test" "^$" "collect gdb_struct1_test" "^$"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+collect gdb_struct1_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_struct1_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_short_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+collect gdb_short_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_long_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target." \ "\[\t \]+collect gdb_long_test" \
"5.3b: verify actions set for first tracepoint" "\[\t \]+not installed on target"] \
"5.3b: verify actions set for first tracepoint"
# #
# test end command (all by itself) # test end command (all by itself)
@@ -217,17 +221,18 @@ gdb_trace_setactions "5.10a: set teval action for second tracepoint" \
"teval \$tsv += 1" "^$" "teval \$tsv += 1" "^$"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+teval gdb_char_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+teval gdb_char_test" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+teval \\\$tsv \\\+= 1. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target. "\[\t \]+teval \\\$tsv \\\+= 1" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+collect gdb_long_test. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
\[\t \]+not installed on target." \ "\[\t \]+collect gdb_long_test" \
"5.10a: verify teval actions set for two tracepoints" "\[\t \]+not installed on target"] \
"5.10a: verify teval actions set for two tracepoints"
# Load the binary to the target too. # Load the binary to the target too.
gdb_load $binfile gdb_load $binfile

View File

@@ -50,14 +50,15 @@ gdb_test "trace gdb_asm_test" "Tracepoint \[0-9\]+ at .*" "set tracepoint 2"
gdb_test "trace $testline1" "Tracepoint \[0-9\]+ at .*" "set tracepoint 3" gdb_test "trace $testline1" "Tracepoint \[0-9\]+ at .*" "set tracepoint 3"
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"3.1a: set three tracepoints" "\[\t \]+not installed on target"] \
"3.1a: set three tracepoints"
gdb_test "delete tracepoints" \ gdb_test "delete tracepoints" \
"" \ "" \
@@ -77,14 +78,15 @@ if {$trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0} {
} }
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"3.2a: set three tracepoints" "\[\t \]+not installed on target"] \
"3.2a: set three tracepoints"
#gdb_test_no_output "delete tracepoint $trcpt1" "" #gdb_test_no_output "delete tracepoint $trcpt1" ""
gdb_test_multiple "delete tracepoint $trcpt1" "3.2b: delete first tracepoint" { gdb_test_multiple "delete tracepoint $trcpt1" "3.2b: delete first tracepoint" {
@@ -100,12 +102,13 @@ gdb_test_multiple "delete tracepoint $trcpt1" "3.2b: delete first tracepoint" {
} }
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"3.2c: verify delete first tracepoint" "\[\t \]+not installed on target"] \
"3.2c: verify delete first tracepoint"
#gdb_test_no_output "delete tracepoint $trcpt2" "" #gdb_test_no_output "delete tracepoint $trcpt2" ""
gdb_test_multiple "delete tracepoint $trcpt2" "3.2d: delete second tracepoint" { gdb_test_multiple "delete tracepoint $trcpt2" "3.2d: delete second tracepoint" {
@@ -121,10 +124,11 @@ gdb_test_multiple "delete tracepoint $trcpt2" "3.2d: delete second tracepoint" {
} }
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"3.2e: verify delete second tracepoint" "\[\t \]+not installed on target"] \
"3.2e: verify delete second tracepoint"
#gdb_test_no_output "delete tracepoint $trcpt3" "" #gdb_test_no_output "delete tracepoint $trcpt3" ""
gdb_test_multiple "delete tracepoint $trcpt3" "3.2f: delete third tracepoint" { gdb_test_multiple "delete tracepoint $trcpt3" "3.2f: delete third tracepoint" {
@@ -155,14 +159,15 @@ if {$trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0} {
} }
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* [multi_line \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. "Num Type\[ \]+Disp Enb Address\[ \]+What\\s*" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target. "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. "\[\t \]+not installed on target" \
\[\t \]+not installed on target." \ "\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+" \
"3.3a: set three tracepoints" "\[\t \]+not installed on target"] \
"3.3a: set three tracepoints"
#gdb_test_no_output "delete tracepoint $trcpt1 $trcpt2 $trcpt3" "" #gdb_test_no_output "delete tracepoint $trcpt1 $trcpt2 $trcpt3" ""
gdb_test_multiple "delete tracepoint $trcpt1 $trcpt2 $trcpt3" \ gdb_test_multiple "delete tracepoint $trcpt1 $trcpt2 $trcpt3" \

View File

@@ -49,20 +49,20 @@ gdb_test "info tracepoints" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target. \[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"2.1: info tracepoints (all)" "2.1: info tracepoints (all)"
# 2.2 info tracepoint (specific) # 2.2 info tracepoint (specific)
gdb_test "info tracepoint $c_test_num" \ gdb_test "info tracepoint $c_test_num" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* "Num Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"2.2a: info tracepoint $c_test_num (gdb_c_test)" "2.2a: info tracepoint $c_test_num (gdb_c_test)"
gdb_test "info tracepoint $asm_test_num" \ gdb_test "info tracepoint $asm_test_num" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* "Num Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"2.2b: info tracepoint $asm_test_num (gdb_asm_test)" "2.2b: info tracepoint $asm_test_num (gdb_asm_test)"
# 2.3 info tracepoint (invalid tracepoint number) # 2.3 info tracepoint (invalid tracepoint number)

View File

@@ -60,7 +60,7 @@ gdb_test "info tracepoints" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target. \[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"4.1a: set three tracepoints, passcounts all zero" "4.1a: set three tracepoints, passcounts all zero"
gdb_test "passcount 2 $trcpt1" \ gdb_test "passcount 2 $trcpt1" \
@@ -75,7 +75,7 @@ gdb_test "info tracepoints" \
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target. \[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"4.1c: verify 1st tracepoint's passcount set to two" "4.1c: verify 1st tracepoint's passcount set to two"
gdb_test "passcount 4 $trcpt2" \ gdb_test "passcount 4 $trcpt2" \
@@ -91,7 +91,7 @@ gdb_test "info tracepoints" \
\[\t \]+pass count 4 . \[\t \]+pass count 4 .
\[\t \]+not installed on target. \[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"4.1c: verify 2nd tracepoint's passcount set to four" "4.1c: verify 2nd tracepoint's passcount set to four"
# 4.2 passcount of last (default) tracepoint # 4.2 passcount of last (default) tracepoint
@@ -191,7 +191,7 @@ gdb_test "info tracepoints" \
\[\t \]+not installed on target. \[\t \]+not installed on target.
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
\[\t \]+pass count 4 . \[\t \]+pass count 4 .
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"4.6: verify passcount to zero" "4.6: verify passcount to zero"
# 4.7 (test a very large passcount) # 4.7 (test a very large passcount)

View File

@@ -58,7 +58,7 @@ gdb_test "trace $srcfile:$testline2" \
"Tracepoint $decimal at $hex: file.*$srcfile, line $testline2." \ "Tracepoint $decimal at $hex: file.*$srcfile, line $testline2." \
"1.1a: set tracepoint at sourceline" "1.1a: set tracepoint at sourceline"
gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline2. gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline2.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"1.1b: trace sourcefile:line" "1.1b: trace sourcefile:line"
# 1.2 trace invalid source line # 1.2 trace invalid source line
@@ -82,7 +82,7 @@ gdb_test "trace gdb_recursion_test" \
"Tracepoint $decimal at $hex: file.*$srcfile, line $testline1." \ "Tracepoint $decimal at $hex: file.*$srcfile, line $testline1." \
"1.4a: trace function by name" "1.4a: trace function by name"
gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1. gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"1.4b: trace function by name" "1.4b: trace function by name"
# 1.5 trace non-existant function # 1.5 trace non-existant function
@@ -120,7 +120,7 @@ gdb_test "trace \*gdb_recursion_test" \
"Tracepoint $decimal at .*$c_test_addr.*" \ "Tracepoint $decimal at .*$c_test_addr.*" \
"1.7a: trace at function label (before prologue)" "1.7a: trace at function label (before prologue)"
gdb_test "info trace" "$c_test_addr.*in gdb_recursion_test.*:$baseline. gdb_test "info trace" "$c_test_addr.*in gdb_recursion_test.*:$baseline.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"1.7b: verify trace at specific address" "1.7b: verify trace at specific address"
# 1.8 trace at invalid address # 1.8 trace at invalid address
@@ -139,7 +139,7 @@ gdb_test "trace gdb_recursion_test if q1 > 0" \
"1.11a: conditional tracepoint" "1.11a: conditional tracepoint"
gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1. gdb_test "info trace" "in gdb_recursion_test.*$srcfile:$testline1.
\[\t \]+trace only if q1 > 0. \[\t \]+trace only if q1 > 0.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"1.11b: verify conditional tracepoint" "1.11b: verify conditional tracepoint"
# 1.12 set tracepoint in prologue # 1.12 set tracepoint in prologue

View File

@@ -44,7 +44,7 @@ if {$trcpt1 <= 0} {
gdb_test "info tracepoints" \ gdb_test "info tracepoints" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.* "Num Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+. \[0-9\]+\[\t \]+tracepoint keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
\[\t \]+not installed on target." \ \[\t \]+not installed on target" \
"5.12: set a tracepoint, stepcount is zero" "5.12: set a tracepoint, stepcount is zero"
set stepcount 12 set stepcount 12

View File

@@ -1454,13 +1454,13 @@ proc gdb_test { args } {
} }
set prompt [fill_in_default_prompt $prompt [expr !${no-prompt-anchor}]] set prompt [fill_in_default_prompt $prompt [expr !${no-prompt-anchor}]]
set nl [expr ${nonl} ? {""} : {"\[\r\n\]+"}] set nl [expr ${nonl} ? {""} : {"\r\n"}]
set saw_question 0 set saw_question 0
set user_code {} set user_code {}
lappend user_code { lappend user_code {
-re "\[\r\n\]*(?:$pattern)$nl$prompt" { -re "(?:$pattern)$nl$prompt" {
if { $question != "" & !$saw_question} { if { $question != "" & !$saw_question} {
fail $message fail $message
} elseif {!$nopass} { } elseif {!$nopass} {