Home | History | Annotate | Line # | Download | only in gdb.base
      1  1.11  christos #   Copyright 1988-2024 Free Software Foundation, Inc.
      2   1.1  christos 
      3   1.1  christos # This program is free software; you can redistribute it and/or modify
      4   1.1  christos # it under the terms of the GNU General Public License as published by
      5   1.1  christos # the Free Software Foundation; either version 3 of the License, or
      6   1.1  christos # (at your option) any later version.
      7   1.1  christos #
      8   1.1  christos # This program is distributed in the hope that it will be useful,
      9   1.1  christos # but WITHOUT ANY WARRANTY; without even the implied warranty of
     10   1.1  christos # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11   1.1  christos # GNU General Public License for more details.
     12   1.1  christos #
     13   1.1  christos # You should have received a copy of the GNU General Public License
     14   1.1  christos # along with this program.  If not, see <http://www.gnu.org/licenses/>.
     15   1.1  christos 
     16   1.1  christos # Start with a fresh gdb
     17   1.1  christos 
     18   1.1  christos gdb_exit
     19   1.1  christos gdb_start
     20   1.1  christos 
     21   1.1  christos set prev_timeout $timeout
     22   1.1  christos set timeout 60
     23   1.1  christos 
     24   1.1  christos #
     25   1.1  christos # test default actions of gdb commands
     26   1.1  christos #
     27   1.1  christos 
     28   1.9  christos gdb_test "add-symbol-file" "add-symbol-file takes a file name and an address"
     29   1.1  christos 
     30   1.1  christos # test append
     31   1.9  christos gdb_test "append" "List of append subcommands:.*"
     32   1.9  christos gdb_test "append binary" "List of append binary subcommands:.*"
     33   1.1  christos gdb_test "append memory" "Missing filename\."
     34   1.1  christos gdb_test "append value"  "Missing filename\."
     35   1.1  christos gdb_test "append binary memory" "Missing filename\."
     36   1.1  christos gdb_test "append binary value"  "Missing filename\."
     37   1.1  christos 
     38   1.1  christos if !$use_gdb_stub {
     39   1.1  christos     gdb_test_multiple "attach" "attach" {
     40   1.1  christos 	-re "Argument required .(process-id|program) to attach.*$gdb_prompt $"\
     41   1.1  christos 	    { pass "attach" }
     42   1.1  christos 	-re "You can't do that when your target is `None'.*$gdb_prompt $"\
     43   1.1  christos 	    { pass "attach" }
     44   1.1  christos 	-re "You can't do that without a process to debug.*$gdb_prompt $"\
     45   1.1  christos 	    { pass "attach" }
     46   1.1  christos 	-re "Don't know how to attach.  Try \"help target\"..*$gdb_prompt $"\
     47   1.1  christos 	    { pass "attach" }
     48   1.1  christos 	-re "Kill it. .y or n." {
     49   1.1  christos 	    send_gdb "y\n"
     50   1.1  christos 	    exp_continue
     51   1.1  christos 	}
     52   1.1  christos     }
     53   1.1  christos 
     54   1.9  christos     gdb_test "break" "No default breakpoint address now."
     55   1.1  christos     foreach i "b br bre brea" {
     56   1.1  christos 	gdb_test $i "No default breakpoint address now." "break \"$i\" abbreviation"
     57   1.1  christos     }
     58   1.1  christos 
     59   1.1  christos 
     60   1.1  christos     gdb_test "backtrace" "No stack."
     61   1.1  christos 
     62   1.1  christos     # ba and bac are no longer unique command prefixes. So these tests
     63   1.1  christos     # elict an error from GDB.
     64   1.1  christos     # GDB needs to be fixed to map unique alias here for ba bac.
     65   1.1  christos     #
     66   1.1  christos     foreach i "bt ba bac" {
     67   1.1  christos 	gdb_test $i "No stack." "backtrace \"$i\" abbreviation"
     68   1.1  christos     }
     69   1.1  christos }
     70   1.1  christos 
     71   1.9  christos gdb_test "continue" "The program is not being run."
     72   1.1  christos gdb_test "c" "The program is not being run." "continue \"c\" abbreviation"
     73   1.1  christos 
     74   1.1  christos #test call
     75   1.9  christos gdb_test "call" "The history is empty..*"
     76   1.1  christos 
     77   1.1  christos 
     78   1.1  christos #test catch
     79   1.9  christos gdb_test "catch" "List of catch subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help catch\" followed by catch subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
     80   1.1  christos 
     81   1.1  christos #test cd
     82   1.1  christos gdb_test "cd" "Working directory \[^\r\n\]*\(\r\n \\(canonically \[^\r\n\]*\\)\)?\\."
     83   1.1  christos 
     84   1.1  christos #test clear
     85   1.9  christos gdb_test "clear" "No source file specified..*"
     86   1.1  christos 
     87   1.1  christos #test commands
     88   1.9  christos gdb_test "commands" "Argument required .one or more breakpoint numbers...*"
     89   1.1  christos 
     90   1.1  christos #test condition
     91   1.9  christos gdb_test "condition" "Argument required .breakpoint number.*"
     92   1.1  christos 
     93   1.1  christos #test core-file
     94   1.9  christos gdb_test "core-file" "No core file now."
     95   1.1  christos #test delete "d" abbreviation
     96   1.1  christos gdb_test_no_output "d" "delete \"d\" abbreviation"
     97   1.1  christos #test delete
     98   1.1  christos gdb_test_no_output "delete" "delete"
     99   1.1  christos #test define
    100   1.9  christos gdb_test "define" "Argument required \[(\]name of command to define\[)\]."
    101   1.1  christos #test delete breakpoints
    102   1.1  christos gdb_test_no_output "delete breakpoints" "delete breakpoints"
    103   1.1  christos #test delete display
    104   1.1  christos # FIXME -- need to dump full output to detailed log
    105   1.1  christos 
    106   1.1  christos gdb_test "delete display" \
    107   1.1  christos     "" \
    108   1.1  christos     "delete display prompt" \
    109   1.1  christos     "Delete all auto-display expressions.*y or n. $" \
    110   1.1  christos     "y"
    111   1.1  christos 
    112   1.1  christos 
    113   1.1  christos #test detach
    114   1.9  christos gdb_test "detach" ".*"
    115   1.1  christos 
    116   1.1  christos #test directory
    117   1.1  christos # FIXME -- need to dump full output to detailed log
    118   1.1  christos 
    119   1.1  christos gdb_test "directory" \
    120   1.1  christos     "Source directories searched: .cdir\[:;\].cwd.*" \
    121   1.1  christos     "directory prompt" \
    122   1.1  christos     "Reinitialize source path to empty.*y or n. $" \
    123   1.1  christos     "y"
    124   1.1  christos 
    125   1.1  christos #test disable "dis" abbreviation
    126   1.1  christos gdb_test_no_output "dis" "disable \"dis\" abbreviation"
    127   1.1  christos #test disable "disa" abbreviation
    128   1.1  christos gdb_test_no_output "disa" "disable \"disa\" abbreviation"
    129   1.1  christos #test disable
    130   1.1  christos gdb_test_no_output "disable" "disable"
    131   1.1  christos #test disable breakpoints
    132   1.1  christos gdb_test_no_output "disable breakpoints" "disable breakpoints"
    133   1.1  christos #test disable display
    134   1.1  christos gdb_test_no_output "disable display" "disable display"
    135   1.1  christos #test disassemble
    136   1.9  christos gdb_test "disassemble" "No frame selected."
    137   1.1  christos #test display
    138   1.1  christos gdb_test_no_output "display" "display"
    139   1.1  christos #test do
    140   1.9  christos gdb_test "do" "No stack."
    141   1.1  christos #test document
    142   1.9  christos gdb_test "document" "Argument required .name of command to define.*"
    143   1.1  christos #test down
    144   1.9  christos gdb_test "down" "No stack.*"
    145   1.1  christos #test down-silently
    146   1.9  christos gdb_test "down-silently" "No stack."
    147   1.1  christos # test dump
    148   1.9  christos gdb_test "dump" "List of dump subcommands:.*"
    149   1.9  christos gdb_test "dump binary" "List of dump binary subcommands:.*"
    150   1.9  christos gdb_test "dump ihex" "List of dump ihex subcommands:.*"
    151   1.1  christos gdb_test "dump memory" "Missing filename\."
    152   1.9  christos gdb_test "dump srec" "List of dump srec subcommands:.*"
    153   1.9  christos gdb_test "dump tekhex" "List of dump tekhex subcommands:.*"
    154   1.1  christos gdb_test "dump value" "Missing filename\."
    155   1.1  christos gdb_test "dump binary memory" "Missing filename\."
    156   1.1  christos gdb_test "dump binary value"  "Missing filename\."
    157   1.1  christos gdb_test "dump ihex memory" "Missing filename\."
    158   1.1  christos gdb_test "dump ihex value"  "Missing filename\."
    159   1.1  christos gdb_test "dump srec memory" "Missing filename\."
    160   1.1  christos gdb_test "dump srec value"  "Missing filename\."
    161   1.1  christos gdb_test "dump tekhex memory" "Missing filename\."
    162   1.1  christos gdb_test "dump tekhex value"  "Missing filename\."
    163   1.1  christos #test echo
    164   1.1  christos gdb_test_no_output "echo" "echo"
    165   1.1  christos #test enable breakpoints delete
    166   1.9  christos gdb_test "enable breakpoints delete" "Argument required .one or more breakpoint numbers.*"
    167   1.1  christos #test enable breakpoints once
    168   1.9  christos gdb_test "enable breakpoints once" "Argument required .one or more breakpoint numbers.*"
    169   1.1  christos #test enable breakpoints
    170   1.1  christos gdb_test_no_output "enable breakpoints" "enable breakpoints"
    171   1.1  christos #test enable delete
    172   1.9  christos gdb_test "enable delete" "Argument required .one or more breakpoint numbers.*"
    173   1.1  christos #test enable display
    174   1.1  christos gdb_test_no_output "enable display" "enable display"
    175   1.1  christos #test enable once
    176   1.9  christos gdb_test "enable once" "Argument required .one or more breakpoint numbers.*"
    177   1.1  christos #test enable
    178   1.1  christos gdb_test_no_output "enable" "enable"
    179   1.1  christos #test exec-file
    180   1.1  christos send_gdb "exec-file\n"
    181   1.1  christos gdb_expect {
    182   1.1  christos     -re "No executable file now..*$gdb_prompt $" {
    183   1.1  christos 	pass "exec-file"
    184   1.1  christos     }
    185   1.1  christos     -re "exec-file.*A program is being debugged already.  Kill it. .y or n.*$" {
    186   1.1  christos 	send_gdb "n\n"
    187  1.10  christos 	if {$verbose > 1} {
    188   1.1  christos 	    send_user "\tDidn't kill program being debugged\n"
    189   1.1  christos 	}
    190   1.1  christos 	gdb_expect -re "$gdb_prompt $" { }
    191   1.1  christos 	pass "exec-file"
    192   1.1  christos     }
    193   1.1  christos     -re "$gdb_prompt $"	{ fail "exec-file" }
    194   1.1  christos     timeout		{ fail "(timeout) exec-file" }
    195   1.1  christos }
    196   1.1  christos 
    197   1.1  christos #test frame "f" abbreviation
    198   1.1  christos gdb_test "f" "No stack." "frame \"f\" abbreviation"
    199   1.1  christos #test frame
    200   1.9  christos gdb_test "frame" "No stack."
    201   1.1  christos #test fg
    202   1.9  christos gdb_test "fg" "The program is not being run."
    203   1.6  christos 
    204   1.1  christos #test file
    205   1.1  christos send_gdb "file\n"
    206   1.1  christos gdb_expect {
    207   1.1  christos     -re "No executable file now..*$gdb_prompt $"\
    208   1.1  christos 	    { pass "file" }
    209   1.1  christos     -re ".*A program is being debugged already.  Kill it. .y or n.*$" {
    210   1.1  christos 	send_gdb "n\n"
    211  1.10  christos 	if {$verbose > 1} {
    212   1.1  christos 	    send_user "\t\tDidn't kill program being debugged\n"
    213   1.1  christos 	}
    214   1.1  christos 	gdb_expect -re "$gdb_prompt $" { }
    215   1.1  christos 	pass "file"
    216   1.1  christos     }
    217   1.1  christos     -re ".*$gdb_prompt $"	{ fail "file" }
    218   1.1  christos     timeout		{ fail "(timeout) file" }
    219   1.1  christos }
    220   1.1  christos 
    221   1.1  christos #test finish
    222   1.9  christos gdb_test "finish" "The program is not being run."
    223   1.1  christos #test forward-search
    224   1.1  christos # The message here comes from the regexp library, not gdb, and so can
    225   1.1  christos # vary on different systems.
    226   1.9  christos gdb_test "forward-search" "No previous regular expression.*|There is no previous regular expression.*"
    227   1.1  christos #test gcore
    228   1.1  christos 
    229   1.1  christos gdb_test_multiple "gcore" "gcore" {
    230   1.1  christos     -re "You can\'t do that without a process to debug.*$gdb_prompt $" {
    231   1.1  christos 	pass "gcore"
    232   1.1  christos     }
    233   1.1  christos     -re "Undefined command: .*$gdb_prompt $" {
    234   1.1  christos 	pass "gcore"
    235   1.1  christos     }
    236   1.1  christos }
    237   1.1  christos 
    238   1.1  christos gdb_test_multiple "generate-core-file" "generate-core-file" {
    239   1.1  christos     -re "You can\'t do that without a process to debug.*$gdb_prompt $" {
    240   1.1  christos 	pass "generate-core-file"
    241   1.1  christos     }
    242   1.1  christos     -re "Undefined command: .*$gdb_prompt $" {
    243   1.1  christos 	pass "generate-core-file"
    244   1.1  christos     }
    245   1.1  christos }
    246   1.1  christos 
    247   1.1  christos #test help "h" abbreviation
    248   1.9  christos gdb_test "h" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-defined aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "help \"h\" abbreviation"
    249   1.1  christos #test help
    250   1.9  christos gdb_test "help" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-defined aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    251   1.1  christos #test handle
    252   1.9  christos gdb_test "handle" "Argument required .signal to handle.*"
    253   1.1  christos #test info "i" abbreviation
    254   1.9  christos gdb_test "i" "List of info subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help info\" followed by info subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "info \"i\" abbreviation"
    255   1.1  christos #test info
    256   1.9  christos gdb_test "info" "List of info subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help info\" followed by info subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    257   1.1  christos #test ignore
    258   1.9  christos gdb_test "ignore" "Argument required .a breakpoint number.*"
    259   1.1  christos #test info address
    260   1.9  christos gdb_test "info address" "Argument required."
    261   1.1  christos #test info all-registers
    262   1.9  christos gdb_test "info all-registers" "The program has no registers now."
    263   1.1  christos #test info args
    264   1.9  christos gdb_test "info args" "No frame selected."
    265   1.1  christos #test info bogus-gdb-command
    266   1.9  christos gdb_test "info bogus-gdb-command" "Undefined info command: \"bogus-gdb-command\".  Try \"help info\".*"
    267   1.1  christos #test info breakpoints
    268  1.11  christos gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints, or catchpoints."
    269   1.1  christos #test info copying
    270  1.11  christos # The license text is very big, so it may overwhelm Expect's output buffer
    271  1.11  christos # and cause the test to fail occasionally.  To avoid this problem, verify
    272  1.11  christos # the command's output in small chunks.
    273  1.11  christos set saw_header 0
    274  1.11  christos set saw_terms 0
    275  1.11  christos set saw_section5 0
    276  1.11  christos set saw_section7 0
    277  1.11  christos set saw_section10 0
    278  1.11  christos set saw_section14 0
    279  1.11  christos set saw_last_para 0
    280  1.11  christos # These excerpts were chosen for no particular reason, except that they
    281  1.11  christos # occur at the beginning, middle and end of the license text.
    282  1.11  christos set re_header [multi_line \
    283  1.11  christos 		   "\\s+GNU GENERAL PUBLIC LICENSE" \
    284  1.11  christos 		   "\\s+Version 3, 29 June 2007" \
    285  1.11  christos 		   "" \
    286  1.11  christos 		   " Copyright \\(C\\) 2007 Free Software Foundation, Inc. <http://fsf.org/>" \
    287  1.11  christos 		   " Everyone is permitted to copy and distribute verbatim copies" \
    288  1.11  christos 		   " of this license document, but changing it is not allowed." \
    289  1.11  christos 		   "" \
    290  1.11  christos 		   "\\s+Preamble" \
    291  1.11  christos 		   "" \
    292  1.11  christos 		   "  The GNU General Public License is a free, copyleft license for" \
    293  1.11  christos 		   "software and other kinds of works.\r\n"]
    294  1.11  christos set re_terms [multi_line \
    295  1.11  christos 		  "\\s+TERMS AND CONDITIONS" \
    296  1.11  christos 		  "" \
    297  1.11  christos 		  "  0. Definitions." \
    298  1.11  christos 		  "" \
    299  1.11  christos 		  "  \"This License\" refers to version 3 of the GNU General Public License.\r\n"]
    300  1.11  christos set re_section5 [multi_line \
    301  1.11  christos 		     "  5. Conveying Modified Source Versions." \
    302  1.11  christos 		     "" \
    303  1.11  christos 		     "  You may convey a work based on the Program, or the modifications to\r\n"]
    304  1.11  christos set re_section7 [multi_line \
    305  1.11  christos 		     "  7. Additional Terms." \
    306  1.11  christos 		     "" \
    307  1.11  christos 		     "  \"Additional permissions\" are terms that supplement the terms of this\r\n"]
    308  1.11  christos set re_section10 [multi_line \
    309  1.11  christos 		      "  10. Automatic Licensing of Downstream Recipients." \
    310  1.11  christos 		      "" \
    311  1.11  christos 		      "  Each time you convey a covered work, the recipient automatically\r\n"]
    312  1.11  christos set re_section14 [multi_line \
    313  1.11  christos 		      "  14. Revised Versions of this License." \
    314  1.11  christos 		      "" \
    315  1.11  christos 		      "  The Free Software Foundation may publish revised and/or new versions of\r\n"]
    316  1.11  christos set re_last_para [multi_line \
    317  1.11  christos 		      "  Later license versions may give you additional or different" \
    318  1.11  christos 		      "permissions.  However, no additional obligations are imposed on any" \
    319  1.11  christos 		      "author or copyright holder as a result of your choosing to follow a" \
    320  1.11  christos 		      "later version.\r\n"]
    321  1.11  christos set test "info copying"
    322  1.11  christos gdb_test_multiple $test $test {
    323  1.11  christos     -re $re_header {
    324  1.11  christos 	set saw_header 1
    325  1.11  christos 	exp_continue
    326  1.11  christos     }
    327  1.11  christos     -re $re_terms {
    328  1.11  christos 	set saw_terms 1
    329  1.11  christos 	exp_continue
    330  1.11  christos     }
    331  1.11  christos     -re $re_section5 {
    332  1.11  christos 	set saw_section5 1
    333  1.11  christos 	exp_continue
    334  1.11  christos     }
    335  1.11  christos     -re $re_section7 {
    336  1.11  christos 	set saw_section7 1
    337  1.11  christos 	exp_continue
    338  1.11  christos     }
    339  1.11  christos     -re $re_section10 {
    340  1.11  christos 	set saw_section10 1
    341  1.11  christos 	exp_continue
    342  1.11  christos     }
    343  1.11  christos     -re $re_section14 {
    344  1.11  christos 	set saw_section14 1
    345  1.11  christos 	exp_continue
    346  1.11  christos     }
    347  1.11  christos     -re $re_last_para {
    348  1.11  christos 	set saw_last_para 1
    349  1.11  christos 	exp_continue
    350  1.11  christos     }
    351  1.11  christos     -re "$gdb_prompt \$" {
    352  1.11  christos 	gdb_assert { $saw_header && $saw_terms && $saw_section5 \
    353  1.11  christos 			 && $saw_section7 && $saw_section10 \
    354  1.11  christos 			 && $saw_section14 && $saw_last_para } $test
    355  1.11  christos     }
    356  1.11  christos }
    357   1.1  christos #test info display
    358   1.9  christos gdb_test "info display" "There are no auto-display expressions now."
    359   1.1  christos #test info frame "f" abbreviation
    360   1.1  christos gdb_test "info f" "No stack.*|No selected frame.*" "info frame \"f\" abbreviation"
    361   1.1  christos #test info frame
    362   1.9  christos gdb_test "info frame" "No stack.|No selected frame."
    363   1.1  christos #test info files
    364   1.1  christos gdb_test_no_output "info files" "info files"
    365   1.1  christos #test info float
    366   1.9  christos gdb_test "info float" "The program has no registers now."
    367   1.1  christos #test info functions
    368   1.9  christos gdb_test "info functions" "All defined functions:"
    369   1.1  christos #test info locals
    370   1.9  christos gdb_test "info locals" "No frame selected."
    371   1.1  christos #test info program
    372   1.9  christos gdb_test "info program" "The program being debugged is not being run."
    373   1.1  christos #test info registers
    374   1.9  christos gdb_test "info registers" "The program has no registers now."
    375   1.1  christos #test info stack "s" abbreviation
    376   1.1  christos gdb_test "info s" "No stack." "info stack \"s\" abbreviation"
    377   1.1  christos #test info stack
    378   1.9  christos gdb_test "info stack" "No stack."
    379   1.1  christos #test info set
    380   1.1  christos # Test improved to check three parts:
    381   1.1  christos # 1) confirm
    382   1.1  christos # 2) prompt
    383   1.1  christos # 3) write
    384   1.1  christos # And only succeed if all three are matched.
    385   1.1  christos # This should fix an old problem on native solaris 2.8,
    386   1.1  christos # where this test fails due to this line:
    387   1.1  christos #  prompt:  Gdb's prompt is "(gdb) ".^M
    388   1.1  christos set set_confirm_seen 0
    389   1.1  christos set set_prompt_seen 0
    390   1.1  christos gdb_test_multiple "info set" "info set" {
    391   1.1  christos     -re "confirm:  Whether to confirm potentially dangerous operations is o\[a-z\]*.(\[^\r\n\]*\[\r\n\])+history filename:  The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+listsize:  Number of source lines gdb will list by default is 10" {
    392   1.1  christos 	verbose "Confirm dislayed"
    393   1.1  christos 	set set_confirm_seen 1
    394   1.1  christos 	exp_continue
    395   1.1  christos     }
    396   1.1  christos     -re "Gdb's prompt is \"$gdb_prompt \"" {
    397   1.1  christos 	verbose "GDB prompt displayed"
    398   1.1  christos 	set set_prompt_seen 1
    399   1.1  christos 	exp_continue
    400   1.1  christos     }
    401   1.1  christos     -re "Writing into executable.*$gdb_prompt $" {
    402   1.1  christos 	verbose "write displayed"
    403   1.1  christos 	if { $set_prompt_seen && $set_confirm_seen } {
    404   1.1  christos 	    pass "info set"
    405   1.1  christos 	} else {
    406   1.1  christos 	    verbose "prompt $set_prompt_seen confirm $set_confirm_seen"
    407   1.1  christos 	    fail "info set (incomplete output)"
    408   1.1  christos 	}
    409   1.1  christos     }
    410   1.1  christos }
    411   1.1  christos gdb_test "info symbol" "Argument required .address.."
    412   1.1  christos #test info source
    413   1.9  christos gdb_test  "info source" "No current source file..*"
    414   1.1  christos #test info sources
    415   1.9  christos gdb_test "info sources" "No symbol table is loaded.  Use the \"file\" command.*"
    416   1.1  christos #test info target
    417   1.1  christos gdb_test_no_output "info target" "info target"
    418   1.1  christos #test info terminal
    419   1.9  christos gdb_test "info terminal" "No saved terminal information."
    420   1.1  christos # test info threads
    421   1.9  christos gdb_test "info threads" "No threads."
    422   1.1  christos #test info types
    423   1.9  christos gdb_test "info types" "All defined types:"
    424   1.1  christos #test info variables
    425   1.9  christos gdb_test "info variables" "All defined variables:"
    426   1.1  christos #test info vector
    427   1.9  christos gdb_test "info vector" "The program has no registers now."
    428   1.1  christos #test info warranty
    429   1.9  christos gdb_test "info warranty" "15. *Disclaimer of Warranty.*"
    430   1.1  christos #test info watchpoints
    431   1.9  christos gdb_test "info watchpoints" "No watchpoints."
    432   1.1  christos #test inspect
    433   1.9  christos gdb_test "inspect" "The history is empty."
    434   1.1  christos #test jump
    435   1.9  christos gdb_test "jump" "The program is not being run."
    436   1.1  christos #test kill
    437   1.9  christos gdb_test "kill" "The program is not being run."
    438   1.1  christos #test list "l" abbreviation
    439   1.1  christos gdb_test "l" "No symbol table is loaded.  Use the \"file\" command.*" "list \"l\" abbreviation"
    440   1.1  christos #test list
    441   1.9  christos gdb_test "list" "No symbol table is loaded.  Use the \"file\" command.*"
    442   1.1  christos #test load
    443   1.1  christos # The ``takes a file name'' case is for vxgdb.
    444   1.1  christos # The ``Use the "file" command'' case is for newer GDB versions which try
    445   1.1  christos # to deduce the filename from the exec file.
    446   1.9  christos gdb_test "load" "You can't do that when your target is `None'.*|The load command takes a file name.*|Must specify at least a file name with the load command.*|.*Use the .file. or .exec-file. command.*"
    447   1.1  christos #test next "n" abbreviation
    448   1.1  christos gdb_test "n" "The program is not being run." "next \"n\" abbreviation"
    449   1.1  christos #test next
    450   1.9  christos gdb_test "next" "The program is not being run."
    451   1.1  christos #test nexti "ni" abbreviation
    452   1.1  christos gdb_test "ni" "The program is not being run." "nexti \"ni\" abbreviation"
    453   1.1  christos #test nexti
    454   1.9  christos gdb_test "nexti" "The program is not being run."
    455   1.1  christos #test output
    456   1.9  christos gdb_test "output" "Argument required .expression to compute.*"
    457   1.1  christos 
    458   1.1  christos #test overlay
    459   1.9  christos gdb_test "overlay" "List of overlay subcommands:.*"
    460   1.1  christos #test a non-existant overlay subcommand
    461   1.1  christos gdb_test "overlay on"     "Undefined overlay command.* Try \"help overlay\"."
    462   1.1  christos gdb_test_no_output "overlay manual" "overlay manual #1"
    463   1.1  christos gdb_test_no_output "overlay auto"
    464   1.1  christos gdb_test_no_output "overlay off"
    465   1.1  christos gdb_test "overlay list"   "No sections are mapped."
    466   1.1  christos gdb_test "overlay map"    "Overlay debugging not enabled.*" "overlay map #1"
    467   1.1  christos gdb_test "overlay unmap"  "Overlay debugging not enabled.*" "overlay unmap #1"
    468   1.1  christos gdb_test_no_output "overlay manual" "overlay manual #2"
    469  1.11  christos gdb_test "overlay map"    "Argument required: name of an overlay section" "overlay map #2"
    470  1.11  christos gdb_test "overlay unmap"  "Argument required: name of an overlay section" "overlay unmap #2"
    471   1.1  christos 
    472   1.1  christos #test print "p" abbreviation
    473   1.1  christos gdb_test "p" "The history is empty." "print \"p\" abbreviation"
    474   1.1  christos #test print
    475   1.9  christos gdb_test "print" "The history is empty."
    476   1.1  christos #test printf
    477   1.9  christos gdb_test "printf" "Argument required .format-control string and values to print.*"
    478   1.1  christos #test ptype
    479   1.9  christos gdb_test "ptype" "The history is empty."
    480   1.1  christos #test pwd
    481   1.9  christos gdb_test "pwd" "Working directory .*"
    482   1.1  christos 
    483   1.1  christos #test run "r" abbreviation
    484   1.1  christos if $use_gdb_stub {
    485   1.1  christos     # Only extended-remote supports "run".
    486   1.1  christos } else {
    487   1.1  christos     gdb_test_multiple "r" "run \"r\" abbreviation" {
    488   1.1  christos 	-re "Starting program:  .*You can't do that when your target is `None'.*$gdb_prompt $"\
    489   1.1  christos 	    { pass "run \"r\" abbreviation" }
    490   1.1  christos 	-re "Starting program:  .*No executable file specified.*Use the \"file\" or \"exec-file\" command.*$gdb_prompt $"\
    491   1.1  christos 	    { pass "run \"r\" abbreviation" }
    492   1.1  christos 	-re "Starting program:  .*No executable specified, use .target exec.\\..*$gdb_prompt $"\
    493   1.1  christos 	    { pass "run \"r\" abbreviation" }
    494   1.1  christos 	-re "Starting program:  .*No image loaded into target.*$gdb_prompt $"\
    495   1.1  christos 	    { pass "run \"r\" abbreviation" }
    496   1.1  christos 	-re "Starting program:  .*No program loaded.*$gdb_prompt $"\
    497   1.1  christos 	    { pass "run \"r\" abbreviation" }
    498   1.1  christos 	-re "Don't know how to run.  Try \"help target\"..*$gdb_prompt $"\
    499   1.1  christos 	    { pass "run \"r\" abbreviation" }
    500   1.1  christos 	-re "Starting program:  .*Running the default executable on the remote target failed; try \"set remote exec-file\"?.*$gdb_prompt $"\
    501   1.1  christos 	    { pass "run \"r\" abbreviation" }
    502   1.1  christos     }
    503   1.1  christos }
    504   1.1  christos 
    505   1.1  christos #test run
    506   1.1  christos if $use_gdb_stub {
    507   1.1  christos     # Only extended-remote supports "run".
    508   1.1  christos } else {
    509   1.1  christos     gdb_test_multiple "run" "run" {
    510   1.1  christos 	-re "Starting program:.*You can't do that when your target is `None'.*$gdb_prompt $"\
    511   1.1  christos 	    { pass "run" }
    512   1.1  christos 	-re "Starting program:  .*No executable file specified.*Use the \"file\" or \"exec-file\" command.*$gdb_prompt $"\
    513   1.1  christos 	    { pass "run" }
    514   1.1  christos 	-re "Starting program:  .*No executable specified, use .target exec.\\..*$gdb_prompt $"\
    515   1.1  christos 	    { pass "run" }
    516   1.1  christos 	-re "Starting program:  .*No image loaded into target.*$gdb_prompt $"\
    517   1.1  christos 	    { pass "run" }
    518   1.1  christos 	-re "Starting program:  .*No program loaded.*$gdb_prompt $"\
    519   1.1  christos 	    { pass "run" }
    520   1.1  christos 	-re "Don't know how to run.  Try \"help target\"..*$gdb_prompt $"\
    521   1.1  christos 	    { pass "run" }
    522   1.1  christos 	-re "Starting program:  .*Running the default executable on the remote target failed; try \"set remote exec-file\"?.*$gdb_prompt $"\
    523   1.1  christos 	    { pass "run" }
    524   1.1  christos     }
    525   1.1  christos }
    526   1.1  christos 
    527   1.1  christos #test rbreak
    528  1.12  christos gdb_test "rbreak" "No breakpoints made."
    529   1.1  christos 
    530   1.1  christos # test restore
    531   1.1  christos gdb_test "restore" "You can't do that without a process to debug\."
    532   1.1  christos 
    533   1.1  christos #test return
    534  1.11  christos # The middle case accommodated the obsolete a29k, where doing the "ni"
    535   1.1  christos # above causes an initial stack to be created.
    536  1.10  christos gdb_test "return" "No selected frame..*"
    537   1.1  christos 
    538   1.1  christos 
    539   1.1  christos #test reverse-search
    540   1.9  christos gdb_test "reverse-search" "No previous regular expression.*|There is no previous regular expression.*"
    541   1.1  christos #test step "s" abbreviation
    542   1.1  christos gdb_test "s" "The program is not being run." "step \"s\" abbreviation #1"
    543   1.1  christos #test step
    544   1.1  christos gdb_test "step" "The program is not being run." "step #1"
    545   1.1  christos #test search
    546   1.9  christos gdb_test "search" "No previous regular expression.*|There is no previous regular expression.*"
    547   1.1  christos #test section
    548   1.9  christos gdb_test "section" "Must specify section name and its virtual address.*"
    549   1.1  christos #test set annotate
    550   1.9  christos gdb_test "set annotate" "Argument required .integer to set it to.*"
    551   1.1  christos #test set args
    552   1.1  christos gdb_test_no_output "set args" "set args"
    553   1.1  christos 
    554   1.1  christos # Test set check abbreviations
    555   1.1  christos foreach x {"c" "ch" "check"} {
    556   1.9  christos     gdb_test "set $x" "List of set check subcommands:(\[^\r\n\]*\[\r\n\])+set check range -- Set range checking(\[^\r\n\]*\[\r\n\])+set check type -- Set strict type checking(\[^\r\n\]*\[\r\n\])+Type \"help set check\" followed by set check subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." \
    557   1.1  christos 	"set check \"$x\" abbreviation"
    558   1.1  christos }
    559   1.1  christos 
    560   1.1  christos #test set check range
    561   1.9  christos gdb_test "set check range" ".*"
    562   1.1  christos #test set check type
    563   1.9  christos gdb_test "set check type" ".*"
    564   1.1  christos #test set complaints
    565   1.9  christos gdb_test "set complaints" "Argument required .integer to set it to.*"
    566   1.1  christos #test set confirm
    567   1.1  christos gdb_test_no_output "set confirm" "set confirm"
    568   1.1  christos # Don't test set editing. What if we're talking to a gdb that
    569   1.1  christos # won't do editing correctly while we're talking to it?
    570   1.1  christos # gdb_test "set editing" "" "set editing"
    571   1.1  christos 
    572   1.1  christos #test set environment
    573   1.9  christos gdb_test "set environment" "Argument required .environment variable and value.*"
    574   1.1  christos #test set height
    575   1.9  christos gdb_test "set height" "Argument required .integer to set it to.*"
    576   1.1  christos #test set history expansion
    577   1.1  christos gdb_test_no_output "set history expansion" "set history expansion"
    578   1.1  christos # Make sure the history ends up in the right place.
    579   1.1  christos gdb_test_no_output "set history filename [standard_output_file .gdb_history]" \
    580   1.1  christos     "set the history filename"
    581   1.1  christos #test set history save
    582   1.1  christos gdb_test_no_output "set history save" "set history save"
    583   1.1  christos #test set history size
    584   1.9  christos gdb_test "set history size" "Argument required .integer to set it to.*"
    585   1.1  christos #test set history
    586   1.9  christos gdb_test "set history" "List of set history subcommands:(\[^\r\n\]*\[\r\n\])+set history expansion -- Set history expansion on command input(\[^\r\n\]*\[\r\n\])+set history filename -- Set the filename in which to record the command history(\[^\r\n\]*\[\r\n\])+set history save -- Set saving of the history record on exit(\[^\r\n\]*\[\r\n\])+set history size -- Set the size of the command history(\[^\r\n\]*\[\r\n\])+Type \"help set history\" followed by set history subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    587   1.1  christos #test set language
    588   1.9  christos gdb_test "set language" "Requires an argument. Valid arguments are auto, local, unknown, ada, asm, c, c.., d, fortran, go, minimal, modula-2, objective-c, opencl, pascal, rust."
    589   1.1  christos #test set listsize
    590   1.9  christos gdb_test "set listsize" "Argument required .integer to set it to.*"
    591   1.1  christos #test set print "p" abbreviation
    592   1.9  christos gdb_test "set p" "List of set print subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by set print subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set print \"p\" abbreviation"
    593   1.1  christos #test set print "pr" abbreviation
    594   1.9  christos gdb_test "set pr" "List of set print subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by set print subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set print \"pr\" abbreviation"
    595   1.1  christos #test set print
    596   1.9  christos gdb_test "set print" "List of set print subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by set print subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    597   1.1  christos #test set print address
    598   1.1  christos gdb_test_no_output "set print address" "set print address"
    599   1.1  christos #test set print array
    600   1.1  christos gdb_test_no_output "set print array" "set print array"
    601   1.1  christos #test set print asm-demangle
    602   1.1  christos gdb_test_no_output "set print asm-demangle" "set print asm-demangle"
    603  1.11  christos #test set print characters
    604  1.11  christos gdb_test "set print characters" \
    605  1.11  christos 	 "Argument required \\(integer to set it to, or one of:\
    606  1.11  christos 	  \"elements\", \"unlimited\"\\)\\."
    607   1.1  christos #test set print demangle
    608   1.1  christos gdb_test_no_output "set print demangle" "set print demangle"
    609   1.1  christos #test set print elements
    610  1.10  christos gdb_test "set print elements" \
    611  1.10  christos 	 "Argument required \\(integer to set it to, or \"unlimited\"\\)\\."
    612   1.1  christos #test set print object
    613   1.1  christos gdb_test_no_output "set print object" "set print object"
    614   1.1  christos #test set print pretty
    615   1.1  christos gdb_test_no_output "set print pretty" "set print pretty"
    616   1.1  christos #test set print sevenbit-strings
    617   1.1  christos gdb_test_no_output "set print sevenbit-strings" "set print sevenbit-strings"
    618   1.1  christos #test set print union
    619   1.1  christos gdb_test_no_output "set print union" "set print union"
    620   1.1  christos #test set print vtbl
    621   1.1  christos gdb_test_no_output "set print vtbl" "set print vtbl"
    622   1.1  christos # FIXME -- need a test for "set prompt"
    623   1.1  christos #test set radix
    624   1.9  christos gdb_test "set radix" "Input and output radices now set to decimal 10, hex a, octal 12.*"
    625   1.1  christos #test set variable
    626   1.9  christos gdb_test "set variable" "Argument required .expression to compute.*"
    627   1.1  christos #test set verbose
    628   1.1  christos gdb_test_no_output "set verbose" "set verbose"
    629   1.1  christos #test set width
    630   1.9  christos gdb_test "set width" "Argument required .integer to set it to.*"
    631   1.1  christos #test set write
    632   1.1  christos # This is only supported on targets which use exec.o.
    633   1.1  christos gdb_test_no_output "set write" "set write"
    634   1.1  christos #test set
    635   1.9  christos gdb_test "set" "Argument required .expression to compute.*"
    636   1.1  christos #test shell echo Hi dad!
    637   1.9  christos gdb_test "shell echo Hi dad!" "Hi dad!"
    638   1.1  christos #test show annotate
    639   1.9  christos gdb_test "show annotate" "Annotation_level is 0."
    640   1.1  christos #test show args
    641   1.9  christos gdb_test "show args" "Argument list to give program being debugged when it is started is \"\"."
    642   1.1  christos 
    643   1.1  christos # test show check abbreviations
    644   1.1  christos foreach x {"c" "ch" "check"} {
    645   1.9  christos     gdb_test "show $x" "check range:  *Range checking is \"auto; currently off\".(\[^\r\n\]*\[\r\n\])+check type:  *Strict type checking is on\..*" \
    646   1.1  christos 	"show check \"$x\" abbreviation"
    647   1.1  christos }
    648   1.1  christos 
    649   1.1  christos #test show check range
    650   1.9  christos gdb_test "show check range" "Range checking is \"auto; currently off\"."
    651   1.1  christos #test show check type
    652   1.9  christos gdb_test "show check type" "Strict type checking is on\."
    653   1.1  christos #test show commands
    654   1.9  christos gdb_test "show commands" ".*"
    655   1.1  christos #test show complaints
    656   1.9  christos gdb_test "show complaints" "Max number of complaints about incorrect symbols is 0."
    657   1.1  christos #test show confirm
    658   1.9  christos gdb_test "show confirm" "Whether to confirm potentially dangerous operations is o\[a-z\]*."
    659   1.1  christos 
    660   1.1  christos #test show convenience
    661   1.1  christos # This is trickier as there are multiple internal convenience vars and
    662   1.1  christos # functions and we can't assume any particular order.
    663   1.1  christos # And we have to handle the extra convenience funs provided by Python.
    664   1.1  christos set show_conv_list \
    665   1.1  christos     { \
    666   1.1  christos 	{$_sdata = void} \
    667   1.1  christos 	{$_siginfo = void} \
    668   1.1  christos 	{$_thread = 0} \
    669   1.6  christos 	{$_gthread = 0} \
    670   1.6  christos 	{$_inferior = 1} \
    671  1.10  christos 	{$_inferior_thread_count = 0} \
    672   1.1  christos 	{$_exception = <error: No frame selected>} \
    673   1.1  christos 	{$_probe_argc = <error: No frame selected>} \
    674   1.1  christos 	{$_probe_arg0 = <error: No frame selected>} \
    675   1.1  christos 	{$_probe_arg1 = <error: No frame selected>} \
    676   1.1  christos 	{$_probe_arg2 = <error: No frame selected>} \
    677   1.1  christos 	{$_probe_arg3 = <error: No frame selected>} \
    678   1.1  christos 	{$_probe_arg4 = <error: No frame selected>} \
    679   1.1  christos 	{$_probe_arg5 = <error: No frame selected>} \
    680   1.1  christos 	{$_probe_arg6 = <error: No frame selected>} \
    681   1.1  christos 	{$_probe_arg7 = <error: No frame selected>} \
    682   1.1  christos 	{$_probe_arg8 = <error: No frame selected>} \
    683   1.1  christos 	{$_probe_arg9 = <error: No frame selected>} \
    684   1.1  christos 	{$_probe_arg10 = <error: No frame selected>} \
    685   1.1  christos 	{$_probe_arg11 = <error: No frame selected>} \
    686   1.9  christos 	{$_cimag = <internal function _cimag>} \
    687   1.9  christos 	{$_creal = <internal function _creal>} \
    688   1.1  christos 	{$_isvoid = <internal function _isvoid>} \
    689  1.11  christos 	{$_shell = <internal function _shell>} \
    690   1.9  christos 	{$_gdb_maint_setting_str = <internal function _gdb_maint_setting_str>} \
    691   1.9  christos 	{$_gdb_maint_setting = <internal function _gdb_maint_setting>} \
    692   1.9  christos 	{$_gdb_setting_str = <internal function _gdb_setting_str>} \
    693   1.9  christos 	{$_gdb_setting = <internal function _gdb_setting>} \
    694  1.12  christos 	{$_gdb_major = 16} \
    695  1.12  christos 	{$_gdb_minor = 3} \
    696   1.9  christos 	{$_shell_exitsignal = void} \
    697   1.9  christos 	{$_shell_exitcode = 0} \
    698   1.1  christos     }
    699  1.11  christos if [allow_python_tests] {
    700   1.1  christos     append show_conv_list \
    701   1.1  christos 	{
    702   1.1  christos 	    {$_memeq = <internal function _memeq>} \
    703   1.1  christos 	    {$_regex = <internal function _regex>} \
    704   1.1  christos 	    {$_streq = <internal function _streq>} \
    705   1.1  christos 	    {$_strlen = <internal function _strlen>} \
    706   1.6  christos 	    {$_as_string = <internal function _as_string>} \
    707   1.3  christos 	    {$_caller_is = <internal function _caller_is>} \
    708   1.3  christos 	    {$_caller_matches = <internal function _caller_matches>} \
    709   1.3  christos 	    {$_any_caller_is = <internal function _any_caller_is>} \
    710   1.3  christos 	    {$_any_caller_matches = <internal function _any_caller_matches>} \
    711   1.1  christos 	}
    712   1.1  christos }
    713   1.1  christos gdb_test_list_exact "show convenience" "show convenience" \
    714   1.1  christos     "\[^\r\n\]+\[\r\n\]+" \
    715   1.1  christos     "\[^\r\n\]+" \
    716   1.1  christos     $show_conv_list
    717   1.1  christos 
    718   1.1  christos #test show directories
    719   1.9  christos gdb_test "show directories" "Source directories searched: .cdir\[:;\].cwd"
    720   1.1  christos #test show editing
    721   1.9  christos gdb_test "show editing" "Editing of command lines as they are typed is o\[a-z\]*."
    722   1.1  christos #test show height
    723   1.9  christos gdb_test "show height" "Number of lines gdb thinks are in a page is.*"
    724   1.1  christos #test show history expansion
    725   1.9  christos gdb_test "show history expansion" "History expansion on command input is o\[a-z\]*.*"
    726   1.1  christos #test show history filename
    727   1.9  christos gdb_test "show history filename" "The filename in which to record the command history is.*.gdb_history.*"
    728   1.1  christos #test show history save
    729   1.9  christos gdb_test "show history save" "Saving of the history record on exit is on."
    730   1.1  christos #test show history size
    731   1.9  christos gdb_test "show history size" "The size of the command history is.*"
    732   1.1  christos #test show history
    733   1.9  christos gdb_test "show history" "history expansion:  *History expansion on command input is o(\[^\r\n\]*\[\r\n\])+history filename:  *The filename in which to record the command history is.*.gdb_history(\[^\r\n\]*\[\r\n\])+history save: *Saving of the history record on exit is o(\[^\r\n\]*\[\r\n\])+history size: * The size of the command history is.*"
    734   1.1  christos #test show language
    735   1.9  christos gdb_test "show language" "The current source language is \"auto; currently c\"."
    736   1.1  christos #test show listsize
    737   1.9  christos gdb_test "show listsize" "Number of source lines gdb will list by default is 10."
    738   1.1  christos #test show print "p" abbreviation
    739   1.9  christos gdb_test "show p" ".*"
    740   1.1  christos #test show print "pr" abbreviation
    741   1.9  christos gdb_test "show pr" ".*"
    742   1.1  christos #test show print
    743   1.9  christos gdb_test "show print" ".*"
    744   1.1  christos #test show paths
    745   1.9  christos gdb_test "show paths" "Executable and object file path:.*"
    746   1.1  christos #test show print address
    747   1.9  christos gdb_test "show print address" "Printing of addresses is on."
    748   1.1  christos #test show print array
    749   1.9  christos gdb_test "show print array" "Pretty formatting of arrays is on."
    750   1.1  christos #test show print asm-demangle
    751   1.9  christos gdb_test "show print asm-demangle" "Demangling of C\[+\]+/ObjC names in disassembly listings is on."
    752  1.11  christos #test show print characters
    753  1.11  christos gdb_test "show print characters" \
    754  1.11  christos 	 "Limit on string characters to print is elements\\."
    755   1.1  christos #test show print demangle
    756   1.9  christos gdb_test "show print demangle" "Demangling of encoded C\[+\]+/ObjC names when displaying symbols is on."
    757   1.1  christos #test show print elements
    758   1.9  christos gdb_test "show print elements" "Limit on string chars or array elements to print is 200."
    759   1.1  christos #test show print object
    760   1.9  christos gdb_test "show print object" "Printing of object's derived type based on vtable info is on."
    761   1.1  christos #test show print pretty
    762   1.9  christos gdb_test "show print pretty" "Pretty formatting of structures is on."
    763   1.1  christos #test show print sevenbit-strings
    764   1.9  christos gdb_test "show print sevenbit-strings" "Printing of 8-bit characters in strings as .nnn is on."
    765   1.1  christos #test show print union
    766   1.9  christos gdb_test "show print union" "Printing of unions interior to structures is on."
    767   1.1  christos #test show print vtbl
    768   1.9  christos gdb_test "show print vtbl" "Printing of C\[+\]+ virtual function tables is on."
    769   1.1  christos #test show prompt
    770   1.1  christos # In the FAIL case, can't just look for $gdb_prompt because that will match
    771   1.1  christos # the output, rather than the prompt. So look for $gdb_prompt at the start
    772   1.1  christos # of a line.
    773   1.9  christos gdb_test "show prompt" "Gdb's prompt is \"$gdb_prompt \".*"
    774   1.1  christos #test show radix
    775   1.9  christos gdb_test "show radix" "Input and output radices set to decimal 10, hex a, octal 12."
    776   1.1  christos #test show user
    777   1.1  christos gdb_test_no_output "show user" "show user"
    778   1.1  christos #test show values
    779   1.1  christos gdb_test_no_output "show values" "show values"
    780   1.1  christos #test show verbose
    781   1.9  christos gdb_test "show verbose" "Verbose printing of informational messages is o.*|Verbosity is off.*"
    782   1.1  christos #test show version
    783   1.9  christos gdb_test "show version" "GNU gdb \[0-9\.\]*(\[^\r\n\]*\[\r\n\])+Copyright \\(C\\) \[0-9\]* Free Software Foundation, Inc(\[^\r\n\]*\[\r\n\])+License GPLv3\\+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>(\[^\r\n\]*\[\r\n\])+This is free software: you are free to change and redistribute it.(\[^\r\n\]*\[\r\n\])+There is NO WARRANTY, to the extent permitted by law.(\[^\r\n\]*\[\r\n\])+Type \"show copying\" and \"show warranty\" for details..*"
    784   1.1  christos #test show width
    785   1.9  christos gdb_test "show width" "Number of characters gdb thinks are in a line is.*"
    786   1.1  christos #test show write
    787   1.1  christos # This is only supported on targets which use exec.o.
    788   1.9  christos gdb_test "show write" "Writing into executable and core files is o.*"
    789   1.1  christos #test show
    790   1.1  christos set show_confirm_seen 0
    791   1.1  christos set show_prompt_seen 0
    792   1.1  christos gdb_test_multiple "show" "show" {
    793   1.1  christos     -re "confirm:  *Whether to confirm potentially dangerous operations is on.(\[^\r\n\]*\[\r\n\])+history filename:  *The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+history save:  *Saving of the history record on exit is on.(\[^\r\n\]*\[\r\n\])+history size:  *The size of the command history is(\[^\r\n\]*\[\r\n\])+listsize:  *Number of source lines gdb will list by default is 10(\[^\r\n]*\[\r\n\])+print elements:  *Limit on string chars or array elements to print is 200." {
    794  1.10  christos 	verbose "Confirm displayed"
    795   1.1  christos 	set show_confirm_seen 1
    796   1.1  christos 	exp_continue
    797   1.1  christos     }
    798   1.1  christos     -re "Gdb's prompt is \"$gdb_prompt \"" {
    799   1.1  christos 	verbose "GDB prompt displayed"
    800   1.1  christos 	set show_prompt_seen 1
    801   1.1  christos 	exp_continue
    802   1.1  christos     }
    803   1.1  christos     -re "Writing into executable.*$gdb_prompt $" {
    804   1.1  christos 	verbose "write displayed"
    805   1.1  christos 	if { $show_prompt_seen && $show_confirm_seen } {
    806   1.1  christos 	    pass "show"
    807   1.1  christos 	} else {
    808   1.1  christos 	    verbose "prompt $show_prompt_seen confirm $show_confirm_seen"
    809   1.1  christos 	    fail "show (incomplete output)"
    810   1.1  christos 	}
    811   1.1  christos     }
    812   1.1  christos }
    813   1.1  christos #history saving should stay disabled
    814   1.1  christos gdb_test_no_output "set history save off" "set history save off"
    815   1.1  christos #test stepi "si" abbreviation
    816   1.1  christos gdb_test  "si" "The program is not being run." "stepi \"si\" abbreviation"
    817   1.1  christos #test stepi
    818   1.9  christos gdb_test "stepi" "The program is not being run."
    819   1.1  christos #test signal
    820   1.9  christos gdb_test "signal" "The program is not being run."
    821   1.1  christos #test source
    822   1.9  christos gdb_test "source" "source command requires file name of file to source..*|No such file or directory.*"
    823   1.1  christos #test step "s" abbreviation
    824   1.1  christos gdb_test "s" "The program is not being run." "step \"s\" abbreviation #2"
    825   1.1  christos #test step
    826   1.1  christos gdb_test "step" "The program is not being run." "step #2"
    827   1.1  christos #test symbol-file
    828   1.9  christos gdb_test "symbol-file" ".*"
    829   1.1  christos 
    830   1.3  christos #test target native
    831   1.9  christos gdb_test "target native" "Use the \"run\" command to start a process.*|Undefined target command: \"native\".  *Try \"help target\".*"
    832   1.1  christos 
    833   1.1  christos #test target core
    834   1.1  christos send_gdb "target core\n"
    835   1.1  christos gdb_expect {
    836   1.1  christos     -re "No core file specified..*$gdb_prompt $" { pass "target core" }
    837   1.1  christos     -re ".*A program is being debugged already.  Kill it. .y or n.*$" {
    838   1.1  christos 	send_gdb "n\n"
    839  1.10  christos 	if {$verbose > 1} {
    840   1.1  christos 	    send_user "\t\tDidn't kill program being debugged\n"
    841   1.1  christos 	}
    842   1.1  christos 	gdb_expect -re "$gdb_prompt $" { }
    843   1.1  christos 	pass "target core"
    844   1.1  christos     }
    845   1.1  christos     -re "Undefined target command: \"core\".  Try \"help target\"..*$gdb_prompt $" { pass "target core" }
    846   1.1  christos     -re ".*$gdb_prompt $"	{ fail "target core" }
    847   1.1  christos     timeout		{ fail "(timeout) target core" }
    848   1.1  christos }
    849   1.1  christos 
    850   1.1  christos #test target exec
    851   1.1  christos send_gdb "target exec\n"
    852   1.1  christos gdb_expect {
    853   1.1  christos 	-re "No executable file now..*$gdb_prompt $"\
    854   1.1  christos 			{ pass "target exec" }
    855   1.1  christos 	-re ".*A program is being debugged already.  Kill it. .y or n.*$" {
    856   1.1  christos 	    send_gdb "n\n"
    857  1.10  christos 	    if {$verbose > 1} {
    858   1.1  christos 		send_user "\t\tDidn't kill program being debugged\n"
    859   1.1  christos 	    }
    860   1.1  christos 	    gdb_expect -re "$gdb_prompt $" { }
    861   1.1  christos 	    pass "target exec"
    862   1.1  christos 	}
    863   1.1  christos 	-re ".*$gdb_prompt $"	{ fail "target exec" }
    864   1.1  christos 	timeout		{ fail "(timeout) target exec" }
    865   1.1  christos 	}
    866   1.1  christos 
    867   1.1  christos #test target remote
    868   1.6  christos send_gdb "target remote\n"
    869   1.6  christos gdb_expect {
    870   1.6  christos     -re "To open a remote debug connection, you need to specify what.*serial.*device is attached to the remote system.*.e.g. .*$gdb_prompt $"\
    871   1.6  christos 	{ pass "target remote" }
    872   1.6  christos     -re ".*A program is being debugged already.  Kill it. .y or n.*$" {
    873   1.6  christos 	send_gdb "n\n"
    874  1.10  christos 	if {$verbose > 1} {
    875   1.6  christos 	    send_user "\t\tDidn't kill program being debugged\n"
    876   1.1  christos 	}
    877   1.6  christos 	gdb_expect -re "$gdb_prompt $" { }
    878   1.6  christos 	pass "target remote"
    879   1.1  christos     }
    880   1.6  christos     -re ".*$gdb_prompt $"	{ fail "target remote" }
    881   1.6  christos     timeout		{ fail "(timeout) target remote" }
    882   1.1  christos }
    883   1.1  christos 
    884   1.1  christos #test target
    885   1.9  christos gdb_test "target" "List of target subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help target\" followed by target subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    886   1.1  christos #test tbreak
    887   1.9  christos gdb_test "tbreak" "No default breakpoint address now."
    888   1.1  christos #test thread
    889   1.9  christos gdb_test "thread" "No thread selected"
    890   1.1  christos #test thread apply
    891   1.9  christos gdb_test "thread apply" "Please specify a thread ID list"
    892   1.1  christos #test thread find
    893   1.9  christos gdb_test "thread find" "Command requires an argument."
    894   1.1  christos #test thread name
    895   1.9  christos gdb_test "thread name" "No thread selected"
    896   1.1  christos #test until "u" abbreviation
    897   1.1  christos gdb_test "u" "The program is not being run." "until \"u\" abbreviation"
    898   1.1  christos #test until
    899   1.9  christos gdb_test "until" "The program is not being run."
    900   1.1  christos #test undisplay
    901   1.1  christos # FIXME -- need to dump full output to detailed log
    902   1.1  christos 
    903   1.1  christos gdb_test "undisplay" \
    904   1.1  christos     "" \
    905   1.1  christos     "undisplay prompt" \
    906   1.1  christos     "Delete all auto-display expressions.*y or n. $" \
    907   1.1  christos     "y"
    908   1.1  christos 
    909   1.1  christos #test unset environment
    910   1.1  christos 
    911   1.1  christos gdb_test "unset environment" \
    912   1.1  christos     "" \
    913   1.1  christos     "unset environment prompt" \
    914   1.1  christos     "Delete all environment variables?.*y or n. $" \
    915   1.1  christos     "y"
    916   1.1  christos 
    917   1.1  christos #test unset
    918   1.9  christos gdb_test "unset" "List of unset subcommands:(\[^\r\n\]*\[\r\n\])+unset environment -- Cancel environment variable VAR for the program(\[^\r\n\]*\[\r\n\])+Type \"help unset\" followed by unset subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
    919   1.1  christos #test up
    920   1.1  christos #test up-silently
    921   1.9  christos gdb_test "up-silently" "No stack."
    922   1.1  christos #test watch
    923   1.9  christos gdb_test "watch" "Argument required .expression to compute.*"
    924   1.1  christos #test whatis
    925   1.9  christos gdb_test "whatis" "The history is empty."
    926   1.1  christos #test where
    927   1.9  christos gdb_test "where" "No stack."
    928   1.1  christos #test x
    929   1.9  christos gdb_test "x" "Argument required .starting display address.*"
    930   1.1  christos 
    931   1.1  christos gdb_exit
    932   1.1  christos 
    933   1.1  christos set timeout $prev_timeout
    934