diff options
author | Fred Fish <fnf@specifix.com> | 1996-08-06 01:18:18 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1996-08-06 01:18:18 +0000 |
commit | 5fac6a39dc2b8704850d7bec599bc9ae281af3bd (patch) | |
tree | 1e494d3e87d8112fdecfa801ceb5472ec489e39c | |
parent | b944e7e855f74a833fb8ae9f60e4e13a0947ab73 (diff) | |
download | gdb-5fac6a39dc2b8704850d7bec599bc9ae281af3bd.zip gdb-5fac6a39dc2b8704850d7bec599bc9ae281af3bd.tar.gz gdb-5fac6a39dc2b8704850d7bec599bc9ae281af3bd.tar.bz2 |
* gdb.base/signals.exp (test_handle_all_print): Test separately for
each signal's status in the output of "handle all print".
* lib/gdb.exp (gdb_test): Document that the pattern must NOT include
the \r\n sequence that immediately precedes the gdb prompt.
* gdb.base/a1-selftest.exp: Save original timeout and restore
after test.
-rw-r--r-- | gdb/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/a1-selftest.exp | 17 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/signals.exp | 252 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 3 |
4 files changed, 273 insertions, 8 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 463a5dc..8c52eb6 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +Mon Aug 5 18:11:53 1996 Fred Fish <fnf@cygnus.com> + + * gdb.base/signals.exp (test_handle_all_print): Test separately for + each signal's status in the output of "handle all print". + * lib/gdb.exp (gdb_test): Document that the pattern must NOT include + the \r\n sequence that immediately precedes the gdb prompt. + * gdb.base/a1-selftest.exp: Save original timeout and restore + after test. + Sun Aug 4 10:20:50 1996 Jeffrey A Law (law@cygnus.com) * gdb.disasm/hppa.s: Export fmemLRbug_tests_4 as a ST_CODE diff --git a/gdb/testsuite/gdb.base/a1-selftest.exp b/gdb/testsuite/gdb.base/a1-selftest.exp index d9eb859..c7c25fb 100644 --- a/gdb/testsuite/gdb.base/a1-selftest.exp +++ b/gdb/testsuite/gdb.base/a1-selftest.exp @@ -56,11 +56,16 @@ proc test_with_self {} { # After gdb is started, set the timeout to 30 seconds for the duration # of this test, and then back to the original value. + set oldtimeout $timeout set timeout 600 verbose "Timeout is now $timeout seconds" 2 if {[gdb_load "./x$tool"] <0} then { + set timeout $oldtimeout + verbose "Timeout is now $timeout seconds" 2 return -1 } + set timeout 30 + verbose "Timeout is now $timeout seconds" 2 # disassemble yourself send "x/10i main\n" @@ -95,6 +100,10 @@ proc test_with_self {} { } # run yourself + # It may take a very long time for the inferior gdb to start (lynx), + # so we bump it back up for the duration of this command. + set timeout 600 + set description "run until breakpoint at main" send "run -nw\n" expect { @@ -106,10 +115,14 @@ proc test_with_self {} { } -re "vfork: No more processes.*$prompt $" { fail "$description (out of virtual memory)" + set timeout $oldtimeout + verbose "Timeout is now $timeout seconds" 2 return -1 } -re ".*$prompt $" { fail "$description" + set timeout $oldtimeout + verbose "Timeout is now $timeout seconds" 2 return -1 } timeout { @@ -117,8 +130,6 @@ proc test_with_self {} { } } - # It may take a very long time for the inferior gdb to start (lynx), - # so we wait until after it's started to reset the timeout value. set timeout 30 verbose "Timeout is now $timeout seconds" 2 @@ -486,6 +497,8 @@ GDB.*Copyright \[0-9\]+ Free Software Foundation, Inc..*$prompt $"\ gdb_exit # Set the timeout back to the value it had when we were called. + set timeout $oldtimeout + verbose "Timeout is now $timeout seconds" 2 # Restart gdb in case next test expects it to be started already. gdb_start diff --git a/gdb/testsuite/gdb.base/signals.exp b/gdb/testsuite/gdb.base/signals.exp index 28977c7..0df1478 100644 --- a/gdb/testsuite/gdb.base/signals.exp +++ b/gdb/testsuite/gdb.base/signals.exp @@ -300,15 +300,257 @@ gdb_start # This will need to be updated as the exact list of signals changes, # but I want to test that TARGET_SIGNAL_0, TARGET_SIGNAL_DEFAULT, and # TARGET_SIGNAL_UNKNOWN are skipped. +# Increase timeout and expect input buffer for large output from gdb. +# Allow blank or TAB as whitespace characters and test individually for +# each specific signal. + proc test_handle_all_print {} { global timeout - # Increase timeout and expect input buffer for large output from gdb. - # Allow blank or TAB as whitespace characters. + set oldtimeout $timeout - set timeout [expr "$timeout + 60"] + set timeout [expr "$timeout + 15"] verbose "Timeout is now $timeout seconds" 2 - match_max 8000 - gdb_test "handle all print" "Signal\[ \]+Stop\[ \]+Print\[ \]+Pass to program\[ \]+Description\r\nSIGHUP\[ \]+Yes\[ \]+Yes\[ \]+Yes\[ \]+Hangup.*SIG63\[ \]+Yes\[ \]+Yes\[ \]+Yes\[ \]+Real-time event 63" + match_max 10000 + gdb_test "handle all print" \ + "Signal\[ \t\]+Stop\[ \t\]+Print\[ \t\]+Pass to program\[ \t\]+Description\r\n.*" \ + "handle all print - Output headers" + gdb_test "handle all print" \ + ".*SIGHUP\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Hangup\r\n.*" \ + "handle all print - Hangup" + gdb_test "handle all print" \ + ".*SIGQUIT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Quit\r\n.*" \ + "handle all print - Quit" + gdb_test "handle all print" \ + ".*SIGILL\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Illegal instruction\r\n.*" \ + "handle all print - Illegal instruction" + gdb_test "handle all print" \ + ".*SIGABRT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Aborted\r\n.*" \ + "handle all print - Aborted" + gdb_test "handle all print" \ + ".*SIGEMT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Emulation trap\r\n.*" \ + "handle all print - Emulation trap" + gdb_test "handle all print" \ + ".*SIGFPE\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Arithmetic exception\r\n.*" \ + "handle all print - Arithmetic exception" + gdb_test "handle all print" \ + ".*SIGKILL\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Killed\r\n.*" \ + "handle all print - Killed" + gdb_test "handle all print" \ + ".*SIGBUS\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Bus error\r\n.*" \ + "handle all print - Bus error" + gdb_test "handle all print" \ + ".*SIGSEGV\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Segmentation fault\r\n.*" \ + "handle all print - Segmentation fault" + gdb_test "handle all print" \ + ".*SIGSYS\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Bad system call\r\n.*" \ + "handle all print - Bad system call" + gdb_test "handle all print" \ + ".*SIGPIPE\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Broken pipe\r\n.*" \ + "handle all print - Broken pipe" + gdb_test "handle all print" \ + ".*SIGALRM\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Alarm clock\r\n.*" \ + "handle all print - Alarm clock" + gdb_test "handle all print" \ + ".*SIGTERM\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Terminated\r\n.*" \ + "handle all print - Terminated" + gdb_test "handle all print" \ + ".*SIGURG\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Urgent I/O condition\r\n.*" \ + "handle all print - Urgent I/O condition" + gdb_test "handle all print" \ + ".*SIGSTOP\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Stopped \\(signal\\)\r\n.*" \ + "handle all print - Stopped (signal)" + gdb_test "handle all print" \ + ".*SIGTSTP\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Stopped \\(user\\)\r\n.*" \ + "handle all print - Stopped (user)" + gdb_test "handle all print" \ + ".*SIGCONT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Continued\r\n.*" \ + "handle all print - Continued" + gdb_test "handle all print" \ + ".*SIGCHLD\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Child status changed\r\n.*" \ + "handle all print - Child status changed" + gdb_test "handle all print" \ + ".*SIGTTIN\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Stopped \\(tty input\\)\r\n.*" \ + "handle all print - Stopped (tty input)" + gdb_test "handle all print" \ + ".*SIGTTOU\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Stopped \\(tty output\\)\r\n.*" \ + "handle all print - Stopped (tty output)" + gdb_test "handle all print" \ + ".*SIGIO\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+I/O possible\r\n.*" \ + "handle all print - I/O possible" + gdb_test "handle all print" \ + ".*SIGXCPU\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+CPU time limit exceeded\r\n.*" \ + "handle all print - CPU time limit exceeded" + gdb_test "handle all print" \ + ".*SIGXFSZ\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+File size limit exceeded\r\n.*" \ + "handle all print - File size limit exceeded" + gdb_test "handle all print" \ + ".*SIGVTALRM\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Virtual timer expired\r\n.*" \ + "handle all print - Virtual timer expired" + gdb_test "handle all print" \ + ".*SIGPROF\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Profiling timer expired\r\n.*" \ + "handle all print - Profiling timer expired" + gdb_test "handle all print" \ + ".*SIGWINCH\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Window size changed\r\n.*" \ + "handle all print - Window size changed" + gdb_test "handle all print" \ + ".*SIGLOST\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Resource lost\r\n.*" \ + "handle all print - Resource lost" + gdb_test "handle all print" \ + ".*SIGUSR1\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+User defined signal 1\r\n.*" \ + "handle all print - User defined signal 1" + gdb_test "handle all print" \ + ".*SIGUSR2\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+User defined signal 2\r\n.*" \ + "handle all print - User defined signal 2" + gdb_test "handle all print" \ + ".*SIGPWR\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Power fail/restart\r\n.*" \ + "handle all print - Power fail/restart" + gdb_test "handle all print" \ + ".*SIGPOLL\[ \t\]+No\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Pollable event occurred\r\n.*" \ + "handle all print - Pollable event occurred" + gdb_test "handle all print" \ + ".*SIGWIND\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+SIGWIND\r\n.*" \ + "handle all print - SIGWIND" + gdb_test "handle all print" \ + ".*SIGPHONE\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+SIGPHONE\r\n.*" \ + "handle all print - SIGPHONE" + gdb_test "handle all print" \ + ".*SIGWAITING\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Process's LWPs are blocked\r\n.*" \ + "handle all print - Process's LWPs are blocked" + gdb_test "handle all print" \ + ".*SIGLWP\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Signal LWP\r\n.*" \ + "handle all print - Signal LWP" + gdb_test "handle all print" \ + ".*SIGDANGER\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Swap space dangerously low\r\n.*" \ + "handle all print - Swap space dangerously low" + gdb_test "handle all print" \ + ".*SIGGRANT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Monitor mode granted\r\n.*" \ + "handle all print - Monitor mode granted" + gdb_test "handle all print" \ + ".*SIGRETRACT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Need to relinguish monitor mode\r\n.*" \ + "handle all print - Need to relinguish monitor mode" + gdb_test "handle all print" \ + ".*SIGMSG\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Monitor mode data available\r\n.*" \ + "handle all print - Monitor mode data available" + gdb_test "handle all print" \ + ".*SIGSOUND\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Sound completed\r\n.*" \ + "handle all print - Sound completed" + gdb_test "handle all print" \ + ".*SIGSAK\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Secure attention\r\n.*" \ + "handle all print - Secure attention" + gdb_test "handle all print" \ + ".*SIGPRIO\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+SIGPRIO\r\n.*" \ + "handle all print - SIGPRIO" + gdb_test "handle all print" \ + ".*SIG33\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 33\r\n.*" \ + "handle all print - Real-time event 33" + gdb_test "handle all print" \ + ".*SIG34\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 34\r\n.*" \ + "handle all print - Real-time event 34" + gdb_test "handle all print" \ + ".*SIG35\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 35\r\n.*" \ + "handle all print - Real-time event 35" + gdb_test "handle all print" \ + ".*SIG36\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 36\r\n.*" \ + "handle all print - Real-time event 36" + gdb_test "handle all print" \ + ".*SIG37\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 37\r\n.*" \ + "handle all print - Real-time event 37" + gdb_test "handle all print" \ + ".*SIG38\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 38\r\n.*" \ + "handle all print - Real-time event 38" + gdb_test "handle all print" \ + ".*SIG39\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 39\r\n.*" \ + "handle all print - Real-time event 39" + gdb_test "handle all print" \ + ".*SIG40\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 40\r\n.*" \ + "handle all print - Real-time event 40" + gdb_test "handle all print" \ + ".*SIG41\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 41\r\n.*" \ + "handle all print - Real-time event 41" + gdb_test "handle all print" \ + ".*SIG42\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 42\r\n.*" \ + "handle all print - Real-time event 42" + gdb_test "handle all print" \ + ".*SIG43\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 43\r\n.*" \ + "handle all print - Real-time event 43" + gdb_test "handle all print" \ + ".*SIG44\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 44\r\n.*" \ + "handle all print - Real-time event 44" + gdb_test "handle all print" \ + ".*SIG45\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 45\r\n.*" \ + "handle all print - Real-time event 45" + gdb_test "handle all print" \ + ".*SIG46\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 46\r\n.*" \ + "handle all print - Real-time event 46" + gdb_test "handle all print" \ + ".*SIG47\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 47\r\n.*" \ + "handle all print - Real-time event 47" + gdb_test "handle all print" \ + ".*SIG48\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 48\r\n.*" \ + "handle all print - Real-time event 48" + gdb_test "handle all print" \ + ".*SIG49\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 49\r\n.*" \ + "handle all print - Real-time event 49" + gdb_test "handle all print" \ + ".*SIG50\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 50\r\n.*" \ + "handle all print - Real-time event 50" + gdb_test "handle all print" \ + ".*SIG51\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 51\r\n.*" \ + "handle all print - Real-time event 51" + gdb_test "handle all print" \ + ".*SIG52\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 52\r\n.*" \ + "handle all print - Real-time event 52" + gdb_test "handle all print" \ + ".*SIG53\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 53\r\n.*" \ + "handle all print - Real-time event 53" + gdb_test "handle all print" \ + ".*SIG54\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 54\r\n.*" \ + "handle all print - Real-time event 54" + gdb_test "handle all print" \ + ".*SIG55\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 55\r\n.*" \ + "handle all print - Real-time event 55" + gdb_test "handle all print" \ + ".*SIG56\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 56\r\n.*" \ + "handle all print - Real-time event 56" + gdb_test "handle all print" \ + ".*SIG57\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 57\r\n.*" \ + "handle all print - Real-time event 57" + gdb_test "handle all print" \ + ".*SIG58\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 58\r\n.*" \ + "handle all print - Real-time event 58" + gdb_test "handle all print" \ + ".*SIG59\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 59\r\n.*" \ + "handle all print - Real-time event 59" + gdb_test "handle all print" \ + ".*SIG60\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 60\r\n.*" \ + "handle all print - Real-time event 60" + gdb_test "handle all print" \ + ".*SIG61\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 61\r\n.*" \ + "handle all print - Real-time event 61" + gdb_test "handle all print" \ + ".*SIG62\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 62\r\n.*" \ + "handle all print - Real-time event 62" + gdb_test "handle all print" \ + ".*SIG63\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Real-time event 63\r\n.*" \ + "handle all print - Real-time event 63" + gdb_test "handle all print" \ + ".*EXC_BAD_ACCESS\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Could not access memory\r\n.*" \ + "handle all print - Could not access memory" + gdb_test "handle all print" \ + ".*EXC_BAD_INSTRUCTION\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Illegal instruction/operand\r\n.*" \ + "handle all print - Illegal instruction/operand" + gdb_test "handle all print" \ + ".*EXC_ARITHMETIC\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Arithmetic exception\r\n.*" \ + "handle all print - Arithmetic exception" + gdb_test "handle all print" \ + ".*EXC_EMULATION\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Emulation instruction\r\n.*" \ + "handle all print - Emulation instruction" + gdb_test "handle all print" \ + ".*EXC_SOFTWARE\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Software generated exception\r\n.*" \ + "handle all print - Software generated exception" + gdb_test "handle all print" \ + ".*EXC_BREAKPOINT\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Yes\[ \t\]+Breakpoint.*" \ + "handle all print - Breakpoint" set timeout $oldtimeout verbose "Timeout restored to $timeout seconds" 2 } diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 501076b..376b56e 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -306,7 +306,8 @@ proc runto_main {} { # Takes three parameters. # Parameters: # First one is the command to execute, -# Second one is the pattern to match for a PASS, +# Second one is the pattern to match for a PASS, and must NOT include +# the \r\n sequence immediately before the gdb prompt. # Third one is an optional message to be printed. If this # a null string "", then the pass/fail messages are not printed. # Returns: |