# Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@prep.ai.mit.edu # This file was written by Rob Savoye. (rob@cygnus.com) # # test gdb help commands # set prms_id 0 set bug_id 0 # force the height of the debugger to be pretty large so no pagers getused send "set height 400\n" expect -re "$prompt $" # use a larger expect input buffer for long help outputs. match_max 6000 # test help add-symbol-file send "help add-symbol-file\n" expect { -re "Usage: add-symbol-file FILE ADDR.* Load the symbols from FILE, assuming FILE has been dynamically loaded..* ADDR is the starting address of the file\'s text..*$prompt $" \ { pass "help add-symbol-file" } -re ".*$prompt $" { fail "help add-symbol-file" } timeout { fail "(timeout) help add-symbol-file" } } # test help aliases send "help aliases\n" expect { -re "Aliases of other commands..* List of commands\:.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help aliases" } -re "$prompt $" { fail "help aliases" } timeout { fail "(timeout) help aliases" } } send "help attach\n" expect { -re "Attach to a process or file outside of GDB..* This command attaches to another target, of the same type as your last.* `target' command .`info files' will show your target stack.* The command may take as argument a process id or a device file..* For a process id, you must have permission to send the process a signal,.* and it must have the same effective uid as the debugger..* When using \"attach\", you should use the \"file\" command to specify.* the program running in the process, and to load its symbol table..*$prompt $"\ { pass "help attach" } -re "$prompt $" { fail "help attach" } timeout { fail "(timeout) help attach" } } # -re "$prompt $" { fail "help attach" } # test help breakpoint "b" abbreviation send "help b\n" expect { -re "Set breakpoint at specified line or function..* Argument may be line number, function name, or \"\[*\]\" and an address..* If line number is specified, break at start of code for that line..* If function is specified, break at start of code for that function..* If an address is specified, break at that exact address..* With no arg, uses current execution address of selected stack frame..* This is useful for breaking on return to a stack frame..* Multiple breakpoints at one place are permitted, and useful if conditional..* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help breakpoint \"b\" abbreviation" } -re "$prompt $" { fail "help breakpoint \"b\" abbreviation" } timeout { fail "(timeout) help breakpoint \"b\" abbreviation" } } # test help breakpoint "br" abbreviation send "help br\n" expect { -re "Set breakpoint at specified line or function..* Argument may be line number, function name, or \"\[*\]\" and an address..* If line number is specified, break at start of code for that line..* If function is specified, break at start of code for that function..* If an address is specified, break at that exact address..* With no arg, uses current execution address of selected stack frame..* This is useful for breaking on return to a stack frame..* Multiple breakpoints at one place are permitted, and useful if conditional..* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help breakpoint \"br\" abbreviation" } -re "$prompt $" { fail "help breakpoint \"br\" abbreviation" } timeout { fail "(timeout) help breakpoint \"br\" abbreviation" } } # test help breakpoint "bre" abbreviation send "help bre\n" expect { -re "Set breakpoint at specified line or function..* Argument may be line number, function name, or \"\[*\]\" and an address..* If line number is specified, break at start of code for that line..* If function is specified, break at start of code for that function..* If an address is specified, break at that exact address..* With no arg, uses current execution address of selected stack frame..* This is useful for breaking on return to a stack frame..* Multiple breakpoints at one place are permitted, and useful if conditional..* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help breakpoint \"bre\" abbreviation" } -re "$prompt $" { fail "help breakpoint \"bre\" abbreviation" } timeout { fail "(timeout) help breakpoint \"bre\" abbreviation" } } # test help breakpoint "brea" abbreviation send "help brea\n" expect { -re "Set breakpoint at specified line or function..* Argument may be line number, function name, or \"\[*\]\" and an address..* If line number is specified, break at start of code for that line..* If function is specified, break at start of code for that function..* If an address is specified, break at that exact address..* With no arg, uses current execution address of selected stack frame..* This is useful for breaking on return to a stack frame..* Multiple breakpoints at one place are permitted, and useful if conditional..* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help breakpoint \"brea\" abbreviation" } -re "$prompt $" { fail "help breakpoint \"brea\" abbreviation" } timeout { fail "(timeout) help breakpoint \"brea\" abbreviation" } } # test help breakpoint "break" abbreviation send "help break\n" expect { -re "Set breakpoint at specified line or function..* Argument may be line number, function name, or \"\[*\]\" and an address..* If line number is specified, break at start of code for that line..* If function is specified, break at start of code for that function..* If an address is specified, break at that exact address..* With no arg, uses current execution address of selected stack frame..* This is useful for breaking on return to a stack frame..* Multiple breakpoints at one place are permitted, and useful if conditional..* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help breakpoint \"break\" abbreviation" } -re "$prompt $" { fail "help breakpoint \"break\" abbreviation" } timeout { fail "(timeout) help breakpoint \"break\" abbreviation" } } # test help breakpoints send "help breakpoints\n" expect { -re "Making program stop at certain points..* List of commands\:.* watch -- Set a watchpoint for an expression.* catch -- Set breakpoints to catch exceptions that are raised.* break -- Set breakpoint at specified line or function.* clear -- Clear breakpoint at specified line or function.* delete -- Delete some breakpoints or auto-display expressions.* disable -- Disable some breakpoints.* enable -- Enable some breakpoints.* tbreak -- Set a temporary breakpoint.* condition -- Specify breakpoint number N to break only if COND is true.* commands -- Set commands to be executed when a breakpoint is hit.* ignore -- Set ignore-count of breakpoint number N to COUNT.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help breakpoints" } -re "$prompt $" { fail "help breakpoints" } timeout { fail "(timeout) help breakpoints" } } # test help backtrace "bt" abbreviation send "help bt\n" expect { -re "Print backtrace of all stack frames, or innermost COUNT frames..* With a negative argument, print outermost -COUNT frames..*$prompt $"\ { pass "help backtrace \"bt\" abbreviation" } -re "$prompt $" { fail "help backtrace \"bt\" abbreviation" } timeout { fail "(timeout) help backtrace \"bt\" abbreviation" } } # test help backtrace send "help backtrace\n" expect { -re "Print backtrace of all stack frames, or innermost COUNT frames..* With a negative argument, print outermost -COUNT frames..*$prompt $"\ { pass "help backtrace" } -re "$prompt $" { fail "help backtrace" } timeout { fail "(timeout) help backtrace" } } # test help continue "c" abbreviation send "help c\n" expect { -re "Continue program being debugged.*$prompt $"\ { pass "help continue \"c\" abbreviation" } -re "$prompt $" { fail "help continue \"c\" abbreviation" } timeout { fail "(timeout) help continue \"c\" abbreviation" } } # test help continue send "help continue\n" expect { -re "Continue program being debugged.*$prompt $"\ { pass "help continue" } -re "$prompt $" { fail "help continue" } timeout { fail "(timeout) help continue" } } # test help call send "help call\n" expect { -re "Call a function.*$prompt $"\ { pass "help call" } -re "$prompt $" { fail "help call" } timeout { fail "(timeout) help call" } } # test help catch send "help catch\n" expect { -re "Set breakpoints to catch exceptions that are raised..* Argument may be a single exception to catch, multiple exceptions.* to catch, or the default exception \"default\". If no arguments.* are given, breakpoints are set at all exception handlers catch clauses.* within the current scope..* A condition specified for the catch applies to all breakpoints set.* with this command.* Do \"help breakpoints\" for info on other commands dealing with breakpoints..*$prompt $"\ { pass "help catch" } -re "$prompt $" { fail "help catch" } timeout { fail "(timeout) help catch" } } # test help cd send "help cd\n" expect { -re "Set working directory to DIR for debugger and program being debugged..* The change does not take effect for the program being debugged.* until the next time it is started..*$prompt $"\ { pass "help cd" } -re "$prompt $" { fail "help cd" } timeout { fail "(timeout) help cd" } } # test help clear send "help clear\n" expect { -re "Clear breakpoint at specified line or function.* Argument may be line number, function name, or .* and an address.* If line number is specified, all breakpoints in that line are cleared.* If function is specified, breakpoints at beginning of function are cleared.* If an address is specified, breakpoints at that address are cleared.* With no argument, clears all breakpoints in the line that the selected frame.* is executing in..* See also the \"delete\" command which clears breakpoints by number..*$prompt $"\ { pass "help clear" } -re "$prompt $" { fail "help clear" } timeout { fail "(timeout) help clear" } } # test help commands send "help commands\n" expect { -re "Set commands to be executed when a breakpoint is hit..* Give breakpoint number as argument after \"commands\"..* With no argument, the targeted breakpoint is the last one set..* The commands themselves follow starting on the next line..* Type a line containing \"end\" to indicate the end of them..* Give \"silent\" as the first line to make the breakpoint silent;.* then no output is printed when it is hit, except what the commands print..*$prompt $"\ { pass "help commands" } -re "$prompt $" { fail "help commands" } timeout { fail "(timeout) help commands" } } # test help condition send "help condition\n" expect { -re "Specify breakpoint number N to break only if COND is true..* Usage is `condition N COND', where N is an integer and COND is an.* expression to be evaluated whenever breakpoint N is reached. .*$prompt $"\ { pass "help condition" } -re "$prompt $" { fail "help condition" } timeout { fail "(timeout) help condition" } } # test help core-file send "help core-file\n" expect { -re "Use FILE as core dump for examining memory and registers..* No arg means have no core file. This command has been superseded by the.* `target core' and `detach' commands..*$prompt $"\ { pass "help core-file" } -re "$prompt $" { fail "help core-file" } timeout { fail "(timeout) help core-file" } } # test help delete "d" abbreviation send "help d\n" expect { -re "Delete some breakpoints or auto-display expressions..* Arguments are breakpoint numbers with spaces in between..* To delete all breakpoints, give no argument..* Also a prefix command for deletion of other GDB objects..* The \"unset\" command is also an alias for \"delete\"..* List of delete subcommands:.* delete display -- Cancel some expressions to be displayed when program stops.* delete breakpoints -- Delete some breakpoints or auto-display expressions.* Type \"help delete\" followed by delete subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help delete \"d\" abbreviation" } -re "$prompt $" { fail "help delete \"d\" abbreviation" } timeout { fail "(timeout) help delete \"d\" abbreviation" } } # test help delete send "help delete\n" expect { -re "Delete some breakpoints or auto-display expressions..* Arguments are breakpoint numbers with spaces in between..* To delete all breakpoints, give no argument..* Also a prefix command for deletion of other GDB objects..* The \"unset\" command is also an alias for \"delete\"..* List of delete subcommands:.* delete display -- Cancel some expressions to be displayed when program stops.* delete breakpoints -- Delete some breakpoints or auto-display expressions.* Type \"help delete\" followed by delete subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help delete" } -re "$prompt $" { fail "help delete" } timeout { fail "(timeout) help delete" } } # test help data send "help data\n" expect { -re ".* Examining data..* List of commands:.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help data" } -re "$prompt $" { fail "help data" } timeout { fail "(timeout) help data" } } # test help define send "help define\n" expect { -re "Define a new command.*$prompt $"\ { pass "help define" } -re "$prompt $" { fail "help define" } timeout { fail "(timeout) help define" } } # test help delete breakpoints send "help delete breakpoints\n" expect { -re "Delete some breakpoints or auto-display expressions..* Arguments are breakpoint numbers with spaces in between..* To delete all breakpoints, give no argument..* This command may be abbreviated \"delete\"..*$prompt $"\ { pass "help delete breakpoints" } -re "$prompt $" { fail "help delete breakpoints" } timeout { fail "(timeout) help delete breakpoints" } } # test help delete display send "help delete display\n" expect { -re "Cancel some expressions to be displayed when program stops..* Arguments are the code numbers of the expressions to stop displaying..* No argument means cancel all automatic-display expressions..* Do \"info display\" to see current list of code numbers..*$prompt $"\ { pass "help delete display" } -re "$prompt $" { fail "help delete display" } timeout { fail "(timeout) help delete display" } } # test help detach send "help detach\n" expect { -re "Detach a process or file previously attached..* If a process, it is no longer traced, and it continues its execution. If you.* were debugging a file, the file is closed and gdb no longer accesses it..*$prompt $"\ { pass "help detach" } -re "$prompt $" { fail "help detach" } timeout { fail "(timeout) help detach" } } # test help directory send "help directory\n" expect { -re "Add directory DIR to beginning of search path for source files..* Forget cached info on source file locations and line positions..* DIR can also be .cwd for the current working directory, or .cdir for the.* directory in which the source file was compiled into object code..* With no argument, reset the search path to .cdir:.cwd, the default..*$prompt $"\ { pass "help directory" } -re "$prompt $" { fail "help directory" } timeout { fail "(timeout) help directory" } } # test help disable "dis" abbreviation send "help dis\n" expect { -re "Disable some breakpoints..* Arguments are breakpoint numbers with spaces in between..* To disable all breakpoints, give no argument..* A disabled breakpoint is not forgotten, but has no effect until reenabled..* List of disable subcommands:.* disable display -- Disable some expressions to be displayed when program stops.* disable breakpoints -- Disable some breakpoints.* Type \"help disable\" followed by disable subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help disable \"dis\" abbreviation" } -re "$prompt $" { fail "help disable \"dis\" abbreviation" } timeout { fail "(timeout) help disable \"dis\" abbreviation" } } # test help disable "disa" abbreviation send "help disa\n" expect { -re "Disable some breakpoints..* Arguments are breakpoint numbers with spaces in between..* To disable all breakpoints, give no argument..* A disabled breakpoint is not forgotten, but has no effect until reenabled..* List of disable subcommands:.* disable display -- Disable some expressions to be displayed when program stops.* disable breakpoints -- Disable some breakpoints.* Type \"help disable\" followed by disable subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help disable \"disa\" abbreviation" } -re "$prompt $" { fail "help disable \"disa\" abbreviation" } timeout { fail "(timeout) help disable \"disa\" abbreviation" } } # test help disable send "help disable\n" expect { -re "Disable some breakpoints..* Arguments are breakpoint numbers with spaces in between..* To disable all breakpoints, give no argument..* A disabled breakpoint is not forgotten, but has no effect until reenabled..* List of disable subcommands:.* disable display -- Disable some expressions to be displayed when program stops.* disable breakpoints -- Disable some breakpoints.* Type \"help disable\" followed by disable subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help disable" } -re "$prompt $" { fail "help disable" } timeout { fail "(timeout) help disable" } } # test help disable breakpoints send "help disable breakpoints\n" expect { -re "Disable some breakpoints..* Arguments are breakpoint numbers with spaces in between..* To disable all breakpoints, give no argument..* A disabled breakpoint is not forgotten, but has no effect until reenabled..* This command may be abbreviated \"disable\"..*$prompt $"\ { pass "help disable breakpoints" } -re "$prompt $" { fail "help disable breakpoints" } timeout { fail "(timeout) help disable breakpoints" } } # test help disable display send "help disable display\n" expect { -re "Disable some expressions to be displayed when program stops..* Arguments are the code numbers of the expressions to stop displaying..* No argument means disable all automatic-display expressions..* Do \"info display\" to see current list of code numbers..*$prompt $"\ { pass "help disable display" } -re "$prompt $" { fail "help disable display" } timeout { fail "(timeout) help disable display" } } # test help disassemble send "help disassemble\n" expect { -re "Disassemble a specified section of memory..* Default is the function surrounding the pc of the selected frame..* With a single argument, the function surrounding that address is dumped..* Two arguments are taken as a range of memory to dump..*$prompt $"\ { pass "help disassemble" } -re "$prompt $" { fail "help disassemble" } timeout { fail "(timeout) help disassemble" } } # test help display send "help display\n" expect { -re "Print value of expression EXP each time the program stops..* /FMT may be used before EXP as in the \"print\" command..* /FMT \"i\" or \"s\" or including a size-letter is allowed,.* as in the \"x\" command, and then EXP is used to get the address to examine.* and examining is done as in the \"x\" command..* With no argument, display all currently requested auto-display expressions..* Use \"undisplay\" to cancel display requests previously made..*$prompt $"\ { pass "help display" } -re "$prompt $" { fail "help display" } timeout { fail "(timeout) help display" } } # test help do send "help do\n" expect { -re "Select and print stack frame called by this one..* An argument says how many frames down to go..*$prompt $"\ { pass "help do" } -re "$prompt $" { fail "help do" } timeout { fail "(timeout) help do" } } # test help document send "help document\n" expect { -re "Document a user-defined command..* Give command name as argument. Give documentation on following lines..* End with a line of just \"end\"..*$prompt $"\ { pass "help document" } -re "$prompt $" { fail "help document" } timeout { fail "(timeout) help document" } } # test help down send "help down\n" expect { -re "Select and print stack frame called by this one..* An argument says how many frames down to go..*$prompt $"\ { pass "help down" } -re "$prompt $" { fail "help down" } timeout { fail "(timeout) help down" } } # test help down-silently send "help down-silently\n" expect { -re "Same as the `down' command, but does not print anything..* This is useful in command scripts..*$prompt $"\ { pass "help down-silently" } -re "$prompt $" { fail "help down-silently" } timeout { fail "(timeout) help down-silently" } } # this command was removed from GDB 4.5.8 # test help dump-me #send "help dump-me\n" #expect { # -re "Get fatal error; make debugger dump its core..*$prompt $"\ # { pass "help dump-me" } # -re "$prompt $" { fail "help dump-me" } # timeout { fail "(timeout) help dump-me" } # } # test help echo send "help echo\n" expect { -re "Print a constant string. Give string as argument..* C escape sequences may be used in the argument..* No newline is added at the end of the argument;.* use \".n\" if you want a newline to be printed..* Since leading and trailing whitespace are ignored in command arguments,.* if you want to print some you must use \".\" before leading whitespace.* to be printed or after trailing whitespace..*$prompt $"\ { pass "help echo" } -re "$prompt $" { fail "help echo" } timeout { fail "(timeout) help echo" } } # test help enable breakpoints delete send "help enable breakpoints delete\n" expect { -re "Enable breakpoints and delete when hit. Give breakpoint numbers..* If a breakpoint is hit while enabled in this fashion, it is deleted..*$prompt $"\ { pass "help enable breakpoints delete" } -re "$prompt $" { fail "help enable breakpoints delete" } timeout { fail "(timeout) help enable breakpoints delete" } } # test help enable breakpoints once send "help enable breakpoints once\n" expect { -re "Enable breakpoints for one hit..*$prompt $"\ { pass "help enable breakpoints once" } -re "$prompt $" { fail "help enable breakpoints once" } timeout { fail "(timeout) help enable breakpoints once" } } # test help enable breakpoints send "help enable breakpoints\n" expect { -re "Enable some breakpoints..* Give breakpoint numbers .separated by spaces. as arguments..* This is used to cancel the effect of the \"disable\" command..* May be abbreviated to simply \"enable\"..*.* List of enable breakpoints subcommands:.* enable breakpoints delete -- Enable breakpoints and delete when hit.* enable breakpoints once -- Enable breakpoints for one hit.* Type \"help enable breakpoints\" followed by enable breakpoints subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help enable breakpoints" } -re "$prompt $" { fail "help enable breakpoints" } timeout { fail "(timeout) help enable breakpoints" } } # test help enable delete send "help enable delete\n" expect { -re "Enable breakpoints and delete when hit. Give breakpoint numbers..* If a breakpoint is hit while enabled in this fashion, it is deleted..*$prompt $"\ { pass "help enable delete" } -re "$prompt $" { fail "help enable delete" } timeout { fail "(timeout) help enable delete" } } # test help enable display send "help enable display\n" expect { -re "Enable some expressions to be displayed when program stops..* Arguments are the code numbers of the expressions to resume displaying..* No argument means enable all automatic-display expressions..* Do \"info display\" to see current list of code numbers..*$prompt $"\ { pass "help enable display" } -re "$prompt $" { fail "help enable display" } timeout { fail "(timeout) help enable display" } } # test help enable once send "help enable once\n" expect { -re "Enable breakpoints for one hit.*$prompt $"\ { pass "help enable once" } -re "$prompt $" { fail "help enable once" } timeout { fail "(timeout) help enable once" } } # test help enable send "help enable\n" expect { -re "Enable some breakpoints..* Give breakpoint numbers .separated by spaces. as arguments..* With no subcommand, breakpoints are enabled until you command otherwise..* This is used to cancel the effect of the \"disable\" command..* With a subcommand you can enable temporarily..* List of enable subcommands:.* enable display -- Enable some expressions to be displayed when program stops.* enable once -- Enable breakpoints for one hit.* enable delete -- Enable breakpoints and delete when hit.* Type \"help enable\" followed by enable subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help enable" } -re "$prompt $" { fail "help enable" } timeout { fail "(timeout) help enable" } } # test help exec-file send "help exec-file\n" expect { -re "Use FILE as program for getting contents of pure memory..* If FILE cannot be found as specified, your execution directory path.* is searched for a command of that name..* No arg means have no executable file..*$prompt $"\ { pass "help exec-file" } -re "$prompt $" { fail "help exec-file" } timeout { fail "(timeout) help exec-file" } } # test help frame "f" abbreviation send "help f\n" expect { -re "Select and print a stack frame..* With no argument, print the selected stack frame. .See also \"info frame\".* An argument specifies the frame to select..* It can be a stack frame number or the address of the frame..* With argument, nothing is printed if input is coming from.* a command file or a user-defined command..*$prompt $"\ { pass "help frame \"f\" abbreviation" } -re "$prompt $" { fail "help frame \"f\" abbreviation" } timeout { fail "(timeout) help frame \"f\" abbreviation" } } # test help frame send "help frame\n" expect { -re "Select and print a stack frame..* With no argument, print the selected stack frame. .See also \"info frame\"...* An argument specifies the frame to select..* It can be a stack frame number or the address of the frame..* With argument, nothing is printed if input is coming from.* a command file or a user-defined command..*$prompt $"\ { pass "help frame" } -re "$prompt $" { fail "help frame" } timeout { fail "(timeout) help frame" } } # test help fg send "help fg\n" expect { -re "Continue program being debugged.*$prompt $"\ { pass "help fg" } -re "$prompt $" { fail "help fg" } timeout { fail "(timeout) help fg" } } # test help file send "help file\n" expect { -re "Use FILE as program to be debugged..* It is read for its symbols, for getting the contents of pure memory,.* and it is the program executed when you use the `run' command..* If FILE cannot be found as specified, your execution directory path.* ..PATH. is searched for a command of that name..* No arg means to have no executable file and no symbols..*$prompt $"\ { pass "help file" } -re "$prompt $" { fail "help file" } timeout { fail "(timeout) help file" } } # test help files send "help files\n" expect { -re "Specifying.*$prompt $" { pass "help files" } -re "$prompt $" { fail "help files" } timeout { fail "(timeout) help files" } } # test help finish send "help finish\n" expect { -re "Execute until selected stack frame returns..* Upon return, the value returned is printed and put in the value history..*$prompt $"\ { pass "help finish" } -re "$prompt $" { fail "help finish" } timeout { fail "(timeout) help finish" } } # test help forward-search send "help forward-search\n" expect { -re "Search for regular expression .see regex.3.. from last line listed..*$prompt $"\ { pass "help forward-search" } -re "$prompt $" { fail "help forward-search" } timeout { fail "(timeout) help forward-search" } } # test help help "h" abbreviation send "help h\n" expect { -re "Print list of commands..*$prompt $"\ { pass "help help \"h\" abbreviation" } -re "$prompt $" { fail "help help \"h\" abbreviation" } timeout { fail "(timeout) help help \"h\" abbreviation" } } # test help help send "help help\n" expect { -re "Print list of commands..*$prompt $"\ { pass "help help" } -re "$prompt $" { fail "help help" } timeout { fail "(timeout) help help" } } # test help handle send "help handle\n" expect { -re "Specify how to handle a signal..*$prompt $"\ { pass "help handle" } -re "$prompt $" { fail "help handle" } timeout { fail "(timeout) help handle" } } # test help info "i" abbreviation send "help i\n" expect { -re "Generic command for showing things about the program being debugged..* List of info subcommands:.* Type \"help info\" followed by info subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help info \"i\" abbreviation" } -re "$prompt $" { fail "help info \"i\" abbreviation" } timeout { fail "(timeout) help info \"i\" abbreviation" } } # test help info send "help info\n" expect { -re "Generic command for showing things about the program being debugged..* List of info subcommands:.* Type \"help info\" followed by info subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help info" } -re "$prompt $" { fail "help info" } timeout { fail "(timeout) help info" } } # test help ignore send "help ignore\n" expect { -re "Set ignore-count of breakpoint number N to COUNT..* Usage is `ignore N COUNT'..*$prompt $"\ { pass "help ignore" } -re "$prompt $" { fail "help ignore" } timeout { fail "(timeout) help ignore" } } # test help info address send "help info address\n" expect { -re "Describe where variable VAR is stored..*$prompt $"\ { pass "help info address" } -re "$prompt $" { fail "help info address" } timeout { fail "(timeout) help info address" } } # test help info all-registers send "help info all-registers\n" expect { -re "List of all registers and their contents, for selected stack frame..* Register name as argument means describe only that register..*$prompt $"\ { pass "help info all-registers" } -re "$prompt $" { fail "help info all-registers" } timeout { fail "(timeout) help info all-registers" } } # test help info args send "help info args\n" expect { -re "Argument variables of current stack frame..*$prompt $"\ { pass "help info args" } -re "$prompt $" { fail "help info args" } timeout { fail "(timeout) help info args" } } # test help info breakpoints send "help info breakpoints\n" expect { -re "Status of user-settable breakpoints, or breakpoint number NUMBER..* breakpoint set..*$prompt $"\ { pass "help info breakpoints" } -re "$prompt $" { fail "help info breakpoints" } timeout { fail "(timeout) help info breakpoints" } } # test help info catch send "help info catch\n" expect { -re "Exceptions that can be caught in the current stack frame..*$prompt $"\ { pass "help info catch" } -re "$prompt $" { fail "help info catch" } timeout { fail "(timeout) help info catch" } } # test help info copying send "help info copying\n" expect { -re "Conditions for redistributing copies of GDB..*$prompt $"\ { pass "help info copying" } -re "$prompt $" { fail "help info copying" } timeout { fail "(timeout) help info copying" } } # test help info display send "help info display\n" expect { -re "Expressions to display when program stops, with code numbers..*$prompt $"\ { pass "help info display" } -re "$prompt $" { fail "help info display" } timeout { fail "(timeout) help info display" } } # test help info frame "f" abbreviation send "help info f\n" expect { -re "All about selected stack frame, or frame at ADDR..*$prompt $"\ { pass "help info frame \"f\" abbreviation" } -re "$prompt $" { fail "help info frame \"f\" abbreviation" } timeout { fail "(timeout) help info frame \"f\" abbreviation" } } # test help info frame send "help info frame\n" expect { -re "All about selected stack frame, or frame at ADDR..*$prompt $"\ { pass "help info frame" } -re "$prompt $" { fail "help info frame" } timeout { fail "(timeout) help info frame" } } # test help info files send "help info files\n" expect { -re "Names of targets and files being debugged..* Shows the entire stack of targets currently in use .including the exec-file,.* core-file, and process, if any., as well as the symbol file name..*$prompt $"\ { pass "help info files" } -re "$prompt $" { fail "help info files" } timeout { fail "(timeout) help info files" } } # test help info float send "help info float\n" expect { -re "Print the status of the floating point unit.*$prompt $"\ { pass "help info float" } -re "$prompt $" { fail "help info float" } timeout { fail "(timeout) help info float" } } # test help info functions send "help info functions\n" expect { -re "All function names, or those matching REGEXP..*$prompt $"\ { pass "help info functions" } -re "$prompt $" { fail "help info functions" } timeout { fail "(timeout) help info functions" } } # test help info line send "help info line\n" expect { -re "Core addresses of the code for a source line..* Line can be specified as.* LINENUM, to list around that line in current file,.* FILE:LINENUM, to list around that line in that file,.* FUNCTION, to list around beginning of that function,.* FILE:FUNCTION, to distinguish among like-named static functions..* Default is to describe the last source line that was listed..* This sets the default address for \"x\" to the line's first instruction.* so that \"x.i\" suffices to start examining the machine code..* The address is also stored as the value of \"._\"..*$prompt $"\ { pass "help info line" } -re "$prompt $" { fail "help info line" } timeout { fail "(timeout) help info line" } } # test help info locals send "help info locals\n" expect { -re "Local variables of current stack frame..*$prompt $"\ { pass "help info locals" } -re "$prompt $" { fail "help info locals" } timeout { fail "(timeout) help info locals" } } # test help info program send "help info program\n" expect { -re "Execution status of the program..*$prompt $"\ { pass "help info program" } -re "$prompt $" { fail "help info program" } timeout { fail "(timeout) help info program" } } # test help info registers send "help info registers\n" expect { -re "List of integer registers and their contents, for selected stack frame..* Register name as argument means describe only that register..*$prompt $"\ { pass "help info registers" } -re "$prompt $" { fail "help info registers" } timeout { fail "(timeout) help info registers" } } # test help info stack "s" abbreviation send "help info s\n" expect { -re "Backtrace of the stack, or innermost COUNT frames..*$prompt $"\ { pass "help info stack \"s\" abbreviation" } -re "$prompt $" { fail "help info stack \"s\" abbreviation" } timeout { fail "(timeout) help info stack \"s\" abbreviation" } } # test help info stack send "help info stack\n" expect { -re "Backtrace of the stack, or innermost COUNT frames..*$prompt $"\ { pass "help info stack" } -re "$prompt $" { fail "help info stack" } timeout { fail "(timeout) help info stack" } } # test help info set send "help info set\n" expect { -re "Show all GDB settings..*$prompt $"\ { pass "help info set" } -re "$prompt $" { fail "help info set" } timeout { fail "(timeout) help info set" } } # test help info signals send "help info signals\n" expect { -re "What debugger does when program gets various signals.*$prompt $"\ { pass "help info signals" } -re "$prompt $" { fail "help info signals" } timeout { fail "(timeout) help info signals" } } # test help info source send "help info source\n" expect { -re "Information about the current source file..*$prompt $"\ { pass "help info source" } -re "$prompt $" { fail "help info source" } timeout { fail "(timeout) help aliases" } } # test help info sources send "help info sources\n" expect { -re "Source files in the program..*$prompt $"\ { pass "help info sources" } -re "$prompt $" { fail "help info sources" } timeout { fail "(timeout) help info sources" } } # test help info target send "help info target\n" expect { -re "Names of targets and files being debugged..* Shows the entire stack of targets currently in use .including the exec-file,.* core-file, and process, if any., as well as the symbol file name..*$prompt $"\ { pass "help info target" } -re "$prompt $" { fail "help info target" } timeout { fail "(timeout) help info target" } } # test help info terminal send "help info terminal\n" expect { -re "Print inferior's saved terminal status..*$prompt $"\ { pass "help info terminal" } -re "$prompt $" { fail "help info terminal" } timeout { fail "(timeout) help info terminal" } } # test help info types send "help info types\n" expect { -re "All type names, or those matching REGEXP..*$prompt $"\ { pass "help info types" } -re "$prompt $" { fail "help info types" } timeout { fail "(timeout) help info types" } } # test help info variables send "help info variables\n" expect { -re "All global and static variable names, or those matching REGEXP..*$prompt $"\ { pass "help info variables" } -re "$prompt $" { fail "help info variables" } timeout { fail "(timeout) help info variables" } } # test help info warranty send "help info warranty\n" expect { -re "Various kinds of warranty you do not have..*$prompt $"\ { pass "help info warranty" } -re "$prompt $" { fail "help info warranty" } timeout { fail "(timeout) help info warranty" } } # test help info watchpoints send "help info watchpoints\n" expect { -re "Synonym for ``info breakpoints''..*$prompt $"\ { pass "help info watchpoints" } -re "$prompt $" { fail "help info watchpoints" } timeout { fail "(timeout) help info watchpoints" } } # test help inspect send "help inspect\n" expect { -re "Same as \"print\" command, except that if you are running in the epoch.* environment, the value is printed in its own window..*$prompt $"\ { pass "help inspect" } -re "$prompt $" { fail "help inspect" } timeout { fail "(timeout) help inspect" } } # test help jump send "help jump\n" expect { -re "Continue program being debugged at specified line or address..* Give as argument either LINENUM or \[*\]+ADDR, where ADDR is an expression.* for an address to start at..*$prompt $"\ { pass "help jump" } -re "$prompt $" { fail "help jump" } timeout { fail "(timeout) help jump" } } # test help kill send "help kill\n" expect { -re "Kill execution of program being debugged..*$prompt $"\ { pass "help kill" } -re "$prompt $" { fail "help kill" } timeout { fail "(timeout) help kill" } } # test help list "l" abbreviation send "help l\n" expect { -re "List specified function or line..* With no argument, lists ten more lines after or around previous listing..* \"list -\" lists the ten lines before a previous ten-line listing..* One argument specifies a line, and ten lines are listed around that line..* Two arguments with comma between specify starting and ending lines to list..* Lines can be specified in these ways:.* LINENUM, to list around that line in current file,.* FILE:LINENUM, to list around that line in that file,.* FUNCTION, to list around beginning of that function,.* FILE:FUNCTION, to distinguish among like-named static functions..* \[*\]+ADDRESS, to list around the line containing that address..* With two args if one is empty it stands for ten lines away from the other arg..*$prompt $"\ { pass "help list \"l\" abbreviation" } -re "$prompt $" { fail "help list \"l\" abbreviation" } timeout { fail "(timeout) help list \"l\" abbreviation" } } # test help list send "help list\n" expect { -re "List specified function or line..* With no argument, lists ten more lines after or around previous listing..* \"list -\" lists the ten lines before a previous ten-line listing..* One argument specifies a line, and ten lines are listed around that line..* Two arguments with comma between specify starting and ending lines to list..* Lines can be specified in these ways:.* LINENUM, to list around that line in current file,.* FILE:LINENUM, to list around that line in that file,.* FUNCTION, to list around beginning of that function,.* FILE:FUNCTION, to distinguish among like-named static functions..* \[*\]+ADDRESS, to list around the line containing that address..* With two args if one is empty it stands for ten lines away from the other arg..*$prompt $"\ { pass "help list" } -re "$prompt $" { fail "help list" } timeout { fail "(timeout) help list" } } # test help load send "help load\n" expect { -re "Dynamically load FILE into the running program, and record its symbols.* for access from GDB..*$prompt $"\ { pass "help load" } -re "$prompt $" { fail "help load" } timeout { fail "(timeout) help load" } } # test help make send "help make\n" expect { -re "Run the ``make'' program using the rest of the line as arguments..*$prompt $"\ { pass "help make" } -re "$prompt $" { fail "help make" } timeout { fail "(timeout) help make" } } # test help next "n" abbreviation send "help n\n" expect { -re "Step program, proceeding through subroutine calls..* Like the \"step\" command as long as subroutine calls do not happen;.* when they do, the call is treated as one instruction..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help next \"n\" abbreviation" } -re "$prompt $" { fail "help next \"n\" abbreviation" } timeout { fail "(timeout) help next \"n\" abbreviation" } } # test help next send "help next\n" expect { -re "Step program, proceeding through subroutine calls..* Like the \"step\" command as long as subroutine calls do not happen;.* when they do, the call is treated as one instruction..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help next" } -re "$prompt $" { fail "help next" } timeout { fail "(timeout) help next" } } # test help nexti send "help ni\n" expect { -re "Step one instruction, but proceed through subroutine calls..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help nexti" } -re "$prompt $" { fail "help nexti" } timeout { fail "(timeout) help nexti" } } # all the commands that used to be here are now in "maintainance" instead # test help obscure send "help obscure\n" expect { -re "Obscure features..* List of commands:.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help obscure" } -re "$prompt $" { fail "help obscure" } timeout { fail "(timeout) help obscure" } } # test help output send "help output\n" expect { -re "Like \"print\" but don't put in value history and don't print newline..* This is useful in user-defined commands..*$prompt $"\ { pass "help output" } -re "$prompt $" { fail "help output" } timeout { fail "(timeout) help output" } } # test help print "p" abbreviation send "help p\n" expect { -re "Print value of expression EXP..* Variables accessible are those of the lexical environment of the selected.* EXP may be preceded with /FMT, where FMT is a format letter.* but no count or size letter .see \"x\" command...*$prompt $"\ { pass "help print \"p\" abbreviation" } -re "$prompt $" { fail "help print \"p\" abbreviation" } timeout { fail "(timeout) help print \"p\" abbreviation" } } # test help print send "help print\n" expect { -re "Print value of expression EXP..* Variables accessible are those of the lexical environment of the selected.* EXP may be preceded with /FMT, where FMT is a format letter.* but no count or size letter .see \"x\" command...*$prompt $"\ { pass "help print" } -re "$prompt $" { fail "help print" } timeout { fail "(timeout) help print" } } # test help path send "help path\n" expect { -re "Add directory DIR.s. to beginning of search path for object files..* .cwd in the path means the current working directory..* This path is equivalent to the .PATH shell variable. It is a list of.* directories, separated by colons. These directories are searched to find.* fully linked executable files and separately compiled object files as needed..*$prompt $"\ { pass "help path" } -re "$prompt $" { fail "help path" } timeout { fail "(timeout) help path" } } # test help printcmds send "help printcmds\n" expect { -re "Undefined command: \"printcmds\". Try \"help\"..*$prompt $"\ { pass "help printcmds" } -re "$prompt $" { fail "help printcmds" } timeout { fail "(timeout) help printcmds" } } # test help printf send "help printf\n" expect { -re "printf \"printf format string\", arg1, arg2, arg3, ..., argn.* This is useful for formatted output in user-defined commands..*$prompt $"\ { pass "help printf" } -re "$prompt $" { fail "help printf" } timeout { fail "(timeout) help printf" } } # this command doesn't exist in GDB 4.5.8 # test help printsyms #send "help printsyms\n" #expect { # -re "Print dump of current symbol definitions to file OUTFILE..* #If a SOURCE file is specified, dump only that file's symbols..*$prompt $"\ # { pass "help printsyms" } # -re "$prompt $" { fail "help printsyms" } # timeout { fail "(timeout) help printsyms" } # } # test help ptype send "help ptype\n" expect { -re "Print definition of type.*$prompt $"\ { pass "help ptype" } -re "$prompt $" { fail "help ptype" } timeout { fail "(timeout) help ptype" } } # test help pwd send "help pwd\n" expect { -re "Print working directory. This is used for your program as well..*$prompt $"\ { pass "help pwd" } -re "$prompt $" { fail "help pwd" } timeout { fail "(timeout) help pwd" } } # test help quit "q" abbreviation send "help q\n" expect { -re "Exit gdb..*$prompt $"\ { pass "help quit \"q\" abbreviation" } -re "$prompt $" { fail "help quit \"q\" abbreviation" } timeout { fail "(timeout) help quit \"q\" abbreviation" } } # test help quit send "help quit\n" expect { -re "Exit gdb..*$prompt $"\ { pass "help quit" } -re "$prompt $" { fail "help quit" } timeout { fail "(timeout) help quit" } } # test help run "r" abbreviation send "help r\n" expect { -re "Start debugged program. You may specify arguments to give it..* Args may include .*, or .*; they are expanded using \"sh\"..* Input and output redirection with \".\", \".\", or \"..\" are also allowed..* With no arguments, uses arguments last specified .with \"run\" or \"set args\"...* To cancel previous arguments and run with no arguments,.* use \"set args\" without arguments..*$prompt $"\ { pass "help run \"r\" abbreviation" } -re "$prompt $" { fail "help run \"r\" abbreviation" } timeout { fail "(timeout) help run \"r\" abbreviation" } } # test help run send "help run\n" expect { -re "Start debugged program. You may specify arguments to give it..* Args may include .*, or .*; they are expanded using \"sh\"..* Input and output redirection with \".\", \".\", or \"..\" are also allowed..* With no arguments, uses arguments last specified .with \"run\" or \"set args\"...* To cancel previous arguments and run with no arguments,.* use \"set args\" without arguments..*$prompt $"\ { pass "help run" } -re "$prompt $" { fail "help run" } timeout { fail "(timeout) help run" } } # test help rbreak send "help rbreak\n" expect { -re "Set a breakpoint for all functions matching REGEXP..*$prompt $"\ { pass "help rbreak" } -re "$prompt $" { fail "help rbreak" } timeout { fail "(timeout) help rbreak" } } # test help return send "help return\n" expect { -re "Make selected stack frame return to its caller..* Control remains in the debugger, but when you continue.* execution will resume in the frame above the one now selected..* If an argument is given, it is an expression for the value to return..*$prompt $"\ { pass "help return" } -re "$prompt $" { fail "help return" } timeout { fail "(timeout) help return" } } # test help reverse-search send "help reverse-search\n" expect { -re "Search backward for regular expression .see regex.3.. from last line listed..*$prompt $"\ { pass "help reverse-search" } -re "$prompt $" { fail "help reverse-search" } timeout { fail "(timeout) help reverse-search" } } # test help running send "help running\n" expect { -re "Running the program..* List of commands:.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help running" } -re "$prompt $" { fail "help running" } timeout { fail "(timeout) help running" } } # test help step "s" abbreviation send "help s\n" expect { -re "Step program until it reaches a different source line..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help step \"s\" abbreviation" } -re "$prompt $" { fail "help step \"s\" abbreviation" } timeout { fail "(timeout) help step \"s\" abbreviation" } } # test help step send "help step\n" expect { -re "Step program until it reaches a different source line..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help step" } -re "$prompt $" { fail "help step" } timeout { fail "(timeout) help step" } } # test help search send "help search\n" expect { -re "Search for regular expression .see regex.3.. from last line listed..*$prompt $"\ { pass "help search" } -re "$prompt $" { fail "help search" } timeout { fail "(timeout) help search" } } # test help section send "help section\n" expect { -re "Change the base address of section SECTION of the exec file to ADDR..* This can be used if the exec file does not contain section addresses,.* .such as in the a.out format., or when the addresses specified in the.* file itself are wrong. Each section must be changed separately. The.* ``info files'' command lists all the sections and their addresses..*$prompt $"\ { pass "help section" } -re "$prompt $" { fail "help section" } timeout { fail "(timeout) help section" } } # test help set args send "help set args\n" expect { -re "Set arguments to give program being debugged when it is started..* Follow this command with any number of args, to be passed to the program..*$prompt $"\ { pass "help set args" } -re "$prompt $" { fail "help set args" } timeout { fail "(timeout) help set args" } } # test help set check "c" abbreviation send "help set c\n" expect { -re "Set the status of the type/range checker.* List of set check subcommands:.* set check range -- Set range checking.* set check type -- Set type checking.* Type \"help set check\" followed by set check subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set check \"c\" abbreviation" } -re "$prompt $" { fail "help set check \"c\" abbreviation" } timeout { fail "(timeout) help set check \"c\" abbreviation" } } # test help set check "ch" abbreviation send "help set ch\n" expect { -re "Set the status of the type/range checker.* List of set check subcommands:.* set check range -- Set range checking.* set check type -- Set type checking.* Type \"help set check\" followed by set check subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set check \"ch\" abbreviation" } -re "$prompt $" { fail "help set check \"ch\" abbreviation" } timeout { fail "(timeout) help set check \"ch\" abbreviation" } } # test help set check send "help set check\n" expect { -re "Set the status of the type/range checker.* List of set check subcommands:.* set check range -- Set range checking.* set check type -- Set type checking.* Type \"help set check\" followed by set check subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set check" } -re "$prompt $" { fail "help set check" } timeout { fail "(timeout) help set check" } } # test help set check range send "help set check range\n" expect { -re "Set range checking. .on/warn/off/auto..*$prompt $"\ { pass "help set check range" } -re "$prompt $" { fail "help set check range" } timeout { fail "(timeout) help set check range" } } # test help set check type send "help set check type\n" expect { -re "Set type checking. .on/warn/off/auto..*$prompt $"\ { pass "help set check type" } -re "$prompt $" { fail "help set check type" } timeout { fail "(timeout) help set check type" } } # test help set complaints send "help set complaints\n" expect { -re "Set max number of complaints about incorrect symbols..*$prompt $"\ { pass "help set complaints" } -re "$prompt $" { fail "help set complaints" } timeout { fail "(timeout) help set complaints" } } # test help set confirm send "help set confirm\n" expect { -re "Set whether to confirm potentially dangerous operations..*$prompt $"\ { pass "help set confirm" } -re "$prompt $" { fail "help set confirm" } timeout { fail "(timeout) help set confirm" } } # test help set editing send "help set editing\n" expect { -re "Set editing of command lines as they are typed..* Use \"on\" to enable to enable the editing, and \"off\" to disable it..* Without an argument, command line editing is enabled. To edit, use.* EMACS-like or VI-like commands like control-P or ESC..*$prompt $"\ { pass "help set editing" } -re "$prompt $" { fail "help set editing" } timeout { fail "(timeout) help set editing" } } # test help set environment send "help set environment\n" expect { -re "Set environment variable value to give the program..* Arguments are VAR VALUE where VAR is variable name and VALUE is value..* VALUES of environment variables are uninterpreted strings..* This does not affect the program until the next \"run\" command..*$prompt $"\ { pass "help set environment" } -re "$prompt $" { fail "help set environment" } timeout { fail "(timeout) help set environment" } } # test help set height send "help set height\n" expect { -re "Set number of lines gdb thinks are in a page..*$prompt $"\ { pass "help set height" } -re "$prompt $" { fail "help set height" } timeout { fail "(timeout) help set height" } } # test help set history expansion send "help set history expansion\n" expect { -re "Set history expansion on command input..* Without an argument, history expansion is enabled..*$prompt $"\ { pass "help set history expansion" } -re "$prompt $" { fail "help set history expansion" } timeout { fail "(timeout) help set history expansion" } } # test help set history filename send "help set history filename\n" expect { -re "Set the filename in which to record the command history.* .the list of previous commands of which a record is kept...*$prompt $"\ { pass "help set history filename" } -re "$prompt $" { fail "help set history filename" } timeout { fail "(timeout) help set history filename" } } # test help set history save send "help set history save\n" expect { -re "Set saving of the history record on exit..* Use \"on\" to enable to enable the saving, and \"off\" to disable it..* Without an argument, saving is enabled..*$prompt $"\ { pass "help set history save" } -re "$prompt $" { fail "help set history save" } timeout { fail "(timeout) help set history save" } } # test help set history size send "help set history size\n" expect { -re "Set the size of the command history, .* ie. the number of previous commands to keep a record of..*$prompt $"\ { pass "help set history size" } -re "$prompt $" { fail "help set history size" } timeout { fail "(timeout) help set history size" } } # test help set history send "help set history\n" expect { -re "Generic command for setting command history parameters..* List of set history subcommands:.* set history filename -- Set the filename in which to record the command history.* set history size -- Set the size of the command history.* set history save -- Set saving of the history record on exit.* set history expansion -- Set history expansion on command input.* Type \"help set history\" followed by set history subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set history" } -re "$prompt $" { fail "help set history" } timeout { fail "(timeout) help set history" } } # test help set language send "help set language\n" expect { -re "Set the current source language..*$prompt $"\ { pass "help set language" } -re "$prompt $" { fail "help set language" } timeout { fail "(timeout) help set language" } } # test help set listsize send "help set listsize\n" expect { -re "Set number of source lines gdb will list by default..*$prompt $"\ { pass "help set listsize" } -re "$prompt $" { fail "help set listsize" } timeout { fail "(timeout) help set listsize" } } # test help set print "p" abbreviation # FIXME -- Ultrix hangs randomly on this very long output from gdb and # continues with its output only if something is sent to gdb. # This behaviour throws expect and gdb out of sync, so we better skip this # test. # Also, if the system is slow, it may time out because the output is large. # Just skip the test rather than bothering with increasing the timeout. if 0 then { send "help set p\n" expect { -re ".* Generic command for setting how things print..* List of set print subcommands:.* Type \"help set print\" followed by set print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set print \"p\" abbreviatio" } -re "$prompt $" { fail "help set print \"p\" abbreviatio" } timeout { fail "(timeout) help set print \"p\" abbreviatio" } } # test help set print "pr" abbreviation send "help set pr\n" expect { -re ".* Generic command for setting how things print..* List of set print subcommands:.* Type \"help set print\" followed by set print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set print \"pr\" abbreviation" } -re "$prompt $" { fail "help set print \"pr\" abbreviation" } timeout { fail "(timeout) help set print \"pr\" abbreviation" } } # test help set print send "help set print\n" expect { -re ".* Generic command for setting how things print..* List of set print subcommands:.* Type \"help set print\" followed by set print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help set print" } -re "$prompt $" { fail "help set print" } timeout { fail "(timeout) help set print" } } } # test help set print address send "help set print address\n" expect { -re "Set printing of addresses..*$prompt $"\ { pass "help set print address" } -re "$prompt $" { fail "help set print address" } timeout { fail "(timeout) help set print address" } } # test help set print array send "help set print array\n" expect { -re "Set prettyprinting of arrays..*$prompt $"\ { pass "help set print array" } -re "$prompt $" { fail "help set print array" } timeout { fail "(timeout) help set print array" } } # test help set print asm-demangle send "help set print asm-demangle\n" expect { -re "Set demangling of C\[+\]+ names in disassembly listings..*$prompt $"\ { pass "help set print asm-demangle" } -re "$prompt $" { fail "help set print asm-demangle" } timeout { fail "(timeout) help set print asm-demangle" } } # test help set print demangle send "help set print demangle\n" expect { -re "Set demangling of encoded C\[+\]+ names when displaying symbols..*$prompt $"\ { pass "help set print demangle" } -re "$prompt $" { fail "help set print demangle" } timeout { fail "(timeout) help set print demangle" } } # test help set print elements send "help set print elements\n" expect { -re "Set limit on string chars or array elements to print..* \"set print elements 0\" causes there to be no limit..*$prompt $"\ { pass "help set print elements" } -re "$prompt $" { fail "help set print elements" } timeout { fail "(timeout) help set print elements" } } # test help set print object send "help set print object\n" expect { -re "Set printing of object's derived type based on vtable info..*$prompt $"\ { pass "help set print object" } -re "$prompt $" { fail "help set print object" } timeout { fail "(timeout) help set print object" } } # test help set print pretty send "help set print pretty\n" expect { -re "Set prettyprinting of structures..*$prompt $"\ { pass "help set print pretty" } -re "$prompt $" { fail "help set print pretty" } timeout { fail "(timeout) help set print pretty" } } # test help set print sevenbit-strings send "help set print sevenbit-strings\n" expect { -re "Set printing of 8-bit characters in strings as .nnn..*$prompt $"\ { pass "help set print sevenbit-strings" } -re "$prompt $" { fail "help set print sevenbit-strings" } timeout { fail "(timeout) help set print sevenbit-strings" } } # test help set print union send "help set print union\n" expect { -re "Set printing of unions interior to structures..*$prompt $"\ { pass "help set print union" } -re "$prompt $" { fail "help set print union" } timeout { fail "(timeout) help set print union" } } # test help set print vtbl send "help set print vtbl\n" expect { -re "Set printing of C\[+\]+ virtual function tables..*$prompt $"\ { pass "help set print vtbl" } -re "$prompt $" { fail "help set print vtbl" } timeout { fail "(timeout) help set print vtbl" } } # test help set prompt send "help set prompt\n" expect { -re "Set gdb's prompt.*$prompt $"\ { pass "help set prompt" } -re "$prompt $" { fail "help set prompt" } timeout { fail "(timeout) help set prompt" } } # test help set radix send "help set radix\n" expect { -re "Set default input and output number radices.* Use \'set input-radix\' or \'set output-radix\' to independently set each..* Without an argument, sets both radices back to the default value of 10..* .*$prompt $"\ { pass "help set radix" } -re "Set default input and output number radix..*$prompt $"\ { fail "help set radix (obsolete radix support)" } -re "$prompt $" { fail "help set radix" } timeout { fail "(timeout) help set radix" } } # test help set symbol-reloading send "help set symbol-reloading\n" expect { -re "Set dynamic symbol table reloading multiple times in one run..*$prompt $"\ { pass "help set symbol-reloading" } -re "$prompt $" { fail "help set symbol-reloading" } timeout { fail "(timeout) help set symbol-reloading" } } # test help set variable send "help set variable\n" expect { -re ".* Evaluate expression EXP and assign result to variable VAR, using assignment.* syntax appropriate for the current language .VAR = EXP or VAR := EXP for.* example.. VAR may be a debugger \"convenience\" variable .names starting.* with \\\$., a register .a few standard names starting with \\\$., or an actual.* variable in the program being debugged. EXP is any valid expression.* This may usually be abbreviated to simply \"set\"..*$prompt $"\ { pass "help set variable" } -re "$prompt $" { fail "help set variable" } timeout { fail "(timeout) help set variable" } } # test help set verbose send "help set verbose\n" expect { -re "Set verbosity..*$prompt $"\ { pass "help set verbose" } -re "Set verbose printing of informational messages.*$prompt $"\ { pass "help set verbose. FIXME" } -re "$prompt $" { fail "help set verbose" } timeout { fail "(timeout) help set verbose" } } #test help set width send "help set width\n" expect { -re "Set number of characters gdb thinks are in a line..*$prompt $"\ { pass "help set width" } -re "$prompt $" { fail "help set width" } timeout { fail "(timeout) help set width" } } # test help set write # This is only supported on targets which use exec.o. if ![istarget "rs6000-*-*"] then { send "help set write\n" expect { -re "Set writing into executable and core files..*$prompt $"\ { pass "help set write" } -re "$prompt $" { fail "help set write" } timeout { fail "(timeout) help set write" } } } # test help set # FIXME -- Ultrix hangs randomly on this very long output from gdb and # continues with its output only if something is sent to gdb. # This behaviour throws expect and gdb out of sync, so we better skip this # test. # Also, if the system is slow, it may time out because the output is large. # Just skip the test rather than bothering with increasing the timeout. if 0 then { if ![istarget "*-*-ultrix*"] then { send "help set\n" expect { -re ".* Evaluate expression EXP and assign result to variable VAR, using assignment.* syntax appropriate for the current language .VAR = EXP or VAR := EXP for.* example.. VAR may be a debugger \"convenience\" variable .names starting.* with \\\$., a register .a few standard names starting with \\\$., or an actual.* variable in the program being debugged. EXP is any valid expression.* set listsize -- Set number of source lines gdb will list by default.* Type \"help set\" followed by set subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..* $prompt $"\ { pass "help set" } -re "$prompt $" { fail "help set" } timeout { fail "(timeout) help set" } } } } # test help shell send "help shell\n" expect { -re "Execute the rest of the line as a shell command. .* With no arguments, run an inferior shell..*$prompt $"\ { pass "help shell" } -re "$prompt $" { fail "help shell" } timeout { fail "(timeout) help shell" } } # test help show args send "help show args\n" expect { -re "Show arguments to give program being debugged when it is started..* Follow this command with any number of args, to be passed to the program..*$prompt $"\ { pass "help show args" } -re "$prompt $" { fail "help show args" } timeout { fail "(timeout) help show args" } } # test help show check "c" abbreviation send "help show c\n" expect { -re "Show the status of the type/range checker.* List of show check subcommands:.* show check range -- Show range checking.* show check type -- Show type checking.* Type \"help show check\" followed by show check subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show check \"c\" abbreviation" } -re "$prompt $" { fail "help show check \"c\" abbreviation" } timeout { fail "(timeout) help show check \"c\" abbreviation" } } # test help show check send "help show check\n" expect { -re "Show the status of the type/range checker.* List of show check subcommands:.* show check range -- Show range checking.* show check type -- Show type checking.* Type \"help show check\" followed by show check subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show check" } -re "$prompt $" { fail "help show check" } timeout { fail "(timeout) help show check" } } # test help show check range send "help show check range\n" expect { -re "Show range checking. .on/warn/off/auto..*$prompt $"\ { pass "help show check range" } -re "$prompt $" { fail "help show check range" } timeout { fail "(timeout) help show check range" } } # test help show check type send "help show check type\n" expect { -re "Show type checking. .on/warn/off/auto..*$prompt $"\ { pass "help show check type" } -re "$prompt $" { fail "help show check type" } timeout { fail "(timeout) help show check type" } } # test help show commands send "help show commands\n" expect { -re "Show the the history of commands you typed..* You can supply a command number to start with, or a `\[+\]' to start after.* the previous command number shown..*$prompt $"\ { pass "help show commands" } -re "$prompt $" { fail "help show commands" } timeout { fail "(timeout) help show commands" } } # test help show complaints send "help show complaints\n" expect { -re "Show max number of complaints about incorrect symbols..*$prompt $"\ { pass "help show complaints" } -re "$prompt $" { fail "help show complaints" } timeout { fail "(timeout) help show complaints" } } # test help show confirm send "help show confirm\n" expect { -re "Show whether to confirm potentially dangerous operations..*$prompt $"\ { pass "help show confirm" } -re "$prompt $" { fail "help show confirm" } timeout { fail "(timeout) help show confirm" } } # test help show convenience send "help show convenience\n" expect { -re "Debugger convenience .\".foo\". variables..* These variables are created when you assign them values;.* thus, \"print .foo=1\" gives \".foo\" the value 1. Values may be any type..* A few convenience variables are given values automatically:.* \"._\"holds the last address examined with \"x\" or \"info lines\",.* \".__\" holds the contents of the last address examined with \"x\"..*$prompt $"\ { pass "help show convenience" } -re "$prompt $" { fail "help show convenience" } timeout { fail "(timeout) help show convenience" } } # test help show directories send "help show directories\n" expect { -re "Current search path for finding source files..* .cwd in the path means the current working directory..* .cdir in the path means the compilation directory of the source file..*$prompt $"\ { pass "help show directories" } -re "$prompt $" { fail "help show directories" } timeout { fail "(timeout) help show directories" } } # test help show editing send "help show editing\n" expect { -re "Show editing of command lines as they are typed..* Use \"on\" to enable to enable the editing, and \"off\" to disable it..* Without an argument, command line editing is enabled. To edit, use.* EMACS-like or VI-like commands like control-P or ESC..*$prompt $"\ { pass "help show editing" } -re "$prompt $" { fail "help show editing" } timeout { fail "(timeout) help show editing" } } # test help show environment send "help show environment\n" expect { -re "The environment to give the program, or one variable's value..* With an argument VAR, prints the value of environment variable VAR to.* give the program being debugged. With no arguments, prints the entire.* environment to be given to the program..*$prompt $"\ { pass "help show environment" } -re "$prompt $" { fail "help show environment" } timeout { fail "(timeout) help show environment" } } # test help show height send "help show height\n" expect { -re "Show number of lines gdb thinks are in a page..*$prompt $"\ { pass "help show height" } -re "$prompt $" { fail "help show height" } timeout { fail "(timeout) help show height" } } # test help show history expansion send "help show history expansion\n" expect { -re "Show history expansion on command input..* Without an argument, history expansion is enabled..*$prompt $"\ { pass "help show history expansion" } -re "$prompt $" { fail "help show history expansion" } timeout { fail "(timeout) help show history expansion" } } # test help show history filename send "help show history filename\n" expect { -re "Show the filename in which to record the command history.* .the list of previous commands of which a record is kept...*$prompt $"\ { pass "help show history filename" } -re "$prompt $" { fail "help show history filename" } timeout { fail "(timeout) help show history filename" } } # test help show history save send "help show history save\n" expect { -re "Show saving of the history record on exit..* Use \"on\" to enable to enable the saving, and \"off\" to disable it..* Without an argument, saving is enabled..*$prompt $"\ { pass "help show history save" } -re "$prompt $" { fail "help show history save" } timeout { fail "(timeout) help show history save" } } # test help show history size send "help show history size\n" expect { -re "Show the size of the command history, .* ie. the number of previous commands to keep a record of..*$prompt $"\ { pass "help show history size" } -re "$prompt $" { fail "help show history size" } timeout { fail "(timeout) help show history size" } } # test help show history send "help show history\n" expect { -re "Generic command for showing command history parameters..* List of show history subcommands:.* show history filename -- Show the filename in which to record the command history.* show history size -- Show the size of the command history.* show history save -- Show saving of the history record on exit.* show history expansion -- Show history expansion on command input.* Type \"help show history\" followed by show history subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show history" } -re "$prompt $" { fail "help show history" } timeout { fail "(timeout) help show history" } } # test help show language send "help show language\n" expect { -re "Show the current source language..*$prompt $"\ { pass "help show language" } -re "$prompt $" { fail "help show language" } timeout { fail "(timeout) help show language" } } # test help show listsize send "help show listsize\n" expect { -re "Show number of source lines gdb will list by default..*$prompt $"\ { pass "help show listsize" } -re "$prompt $" { fail "help show listsize" } timeout { fail "(timeout) help show listsize" } } # test help show print "p" abbreviation send "help show p\n" expect { -re "Generic command for showing print settings..* List of show print subcommands:.* Type \"help show print\" followed by show print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show print \"p\" abbreviation" } -re "$prompt $" { fail "help show print \"p\" abbreviation" } timeout { fail "(timeout) help show print \"p\" abbreviation" } } # test help show print "pr" abbreviation send "help show pr\n" expect { -re "Generic command for showing print settings..* List of show print subcommands:.* Type \"help show print\" followed by show print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show print \"pr\" abbreviation" } -re "$prompt $" { fail "help show print \"pr\" abbreviation" } timeout { fail "(timeout) help show print \"pr\" abbreviation" } } # test help show print send "help show print\n" expect { -re "Generic command for showing print settings..* List of show print subcommands:.* Type \"help show print\" followed by show print subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show print" } -re "$prompt $" { fail "help show print" } timeout { fail "(timeout) help show print" } } # test help show paths send "help show paths\n" expect { -re "Current search path for finding object files..* .cwd in the path means the current working directory..* This path is equivalent to the .PATH shell variable. It is a list of.* directories, separated by colons. These directories are searched to find.* fully linked executable files and separately compiled object files as needed..*$prompt $"\ { pass "help show paths" } -re "$prompt $" { fail "help show paths" } timeout { fail "(timeout) help show paths" } } # test help show print address send "help show print address\n" expect { -re "Show printing of addresses..*$prompt $"\ { pass "help show print address" } -re "$prompt $" { fail "help show print address" } timeout { fail "(timeout) help show print address" } } # test help show print array send "help show print array\n" expect { -re "Show prettyprinting of arrays..*$prompt $"\ { pass "help show print array" } -re "$prompt $" { fail "help show print array" } timeout { fail "(timeout) help show print array" } } # test help show print asm-demangle send "help show print asm-demangle\n" expect { -re "Show demangling of C\[+\]+ names in disassembly listings..*$prompt $"\ { pass "help show print asm-demangle" } -re "$prompt $" { fail "help show print asm-demangle" } timeout { fail "(timeout) help show print asm-demangle" } } # test help show print demangle send "help show print demangle\n" expect { -re "Show demangling of encoded C\[+\]+ names when displaying symbols..*$prompt $"\ { pass "help show print demangle" } -re "$prompt $" { fail "help show print demangle" } timeout { fail "(timeout) help show print demangle" } } # test help show print elements send "help show print elements\n" expect { -re "Show limit on string chars or array elements to print..* \"set print elements 0\" causes there to be no limit..*$prompt $"\ { pass "help show print elements" } -re "$prompt $" { fail "help show print elements" } timeout { fail "(timeout) help show print elements" } } # test help show print object send "help show print object\n" expect { -re "Show printing of object's derived type based on vtable info..*$prompt $"\ { pass "help show print object" } -re "$prompt $" { fail "help show print object" } timeout { fail "(timeout) help show print object" } } # test help show print pretty send "help show print pretty\n" expect { -re "Show prettyprinting of structures..*$prompt $"\ { pass "help show print pretty" } -re "$prompt $" { fail "help show print pretty" } timeout { fail "(timeout) help show print pretty" } } # test help show print sevenbit-strings send "help show print sevenbit-strings\n" expect { -re "Show printing of 8-bit characters in strings as .nnn..*$prompt $"\ { pass "help show print sevenbit-strings" } -re "$prompt $" { fail "help show print sevenbit-strings" } timeout { fail "(timeout) help show print sevenbit-strings" } } # test help show print union send "help show print union\n" expect { -re "Show printing of unions interior to structures..*$prompt $"\ { pass "help show print union" } -re "$prompt $" { fail "help show print union" } timeout { fail "(timeout) help show print union" } } # test help show print vtbl send "help show print vtbl\n" expect { -re "Show printing of C\[+\]+ virtual function tables..*$prompt $"\ { pass "help show print vtbl" } -re "$prompt $" { fail "help show print vtbl" } timeout { fail "(timeout) help show print vtbl" } } # test help show prompt send "help show prompt\n" expect { -re "Show gdb's prompt.*$prompt $"\ { pass "help show prompt" } -re "$prompt $" { fail "help show prompt" } timeout { fail "(timeout) help show prompt" } } # test help show radix send "help show radix\n" expect { -re "Show the default input and output number radices.* Use \'show input-radix\' or \'show output-radix\' to independently show each.* $prompt $"\ { pass "help show radix" } -re "Show default input and output number radix..*$prompt $"\ { fail "help show radix (obsolete radix support)" } -re "$prompt $" { fail "help show radix" } timeout { fail "(timeout) help show radix" } } # test help show symbol-reloading send "help show symbol-reloading\n" expect { -re "Show dynamic symbol table reloading multiple times in one run..*$prompt $"\ { pass "help show symbol-reloading" } -re "$prompt $" { fail "help show symbol-reloading" } timeout { fail "(timeout) help show symbol-reloading" } } # test help show user send "help show user\n" expect { -re "Show definitions of user defined commands..* Argument is the name of the user defined command..* With no argument, show definitions of all user defined commands..*$prompt $"\ { pass "help show user" } -re "$prompt $" { fail "help show user" } timeout { fail "(timeout) help show user" } } # test help show values send "help show values\n" expect { -re "Elements of value history around item number IDX .or last ten...*$prompt $"\ { pass "help show values" } -re "$prompt $" { fail "help show values" } timeout { fail "(timeout) help show values" } } # test help show verbose send "help show verbose\n" expect { -re "Show verbosity..*$prompt $"\ { pass "help show verbose" } -re "Show verbose printing of informational messages..*$prompt $"\ { pass "help show verbose. FIXME" } -re "$prompt $" { fail "help show verbose" } timeout { fail "(timeout) help show verbose" } } # test help show version send "help show version\n" expect { -re "Show what version of GDB this is..*$prompt $"\ { pass "help show version" } -re "$prompt $" { fail "help show version" } timeout { fail "(timeout) help show version" } } # test help show width send "help show width\n" expect { -re "Show number of characters gdb thinks are in a line..*$prompt $"\ { pass "help show width" } -re "$prompt $" { fail "help show width" } timeout { fail "(timeout) help show width" } } # test help show write # This is only supported on targets which use exec.o. if ![istarget "rs6000-*-*"] then { send "help show write\n" expect { -re "Show writing into executable and core files..*$prompt $"\ { pass "help show write" } -re "$prompt $" { fail "help show write" } timeout { fail "(timeout) help show write" } } } # test help show send "help show\n" expect { -re "Generic command for showing things about the debugger..* List of show subcommands:.* show listsize -- Show number of source lines gdb will list by default.* show directories -- Current search path for finding source files.* Type \"help show\" followed by show subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help show" } -re "$prompt $" { fail "help show" } timeout { fail "(timeout) help show" } } # test help step send "help step\n" expect { -re "Step program until it reaches a different source line..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help step" } -re "$prompt $" { fail "help step" } timeout { fail "(timeout) help step" } } # test help stepi "si" abbreviation send "help si\n" expect { -re "Step one instruction exactly..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help stepi \"si\" abbreviation" } -re "$prompt $" { fail "help stepi \"si\" abbreviation" } timeout { fail "(timeout) help stepi \"si\" abbreviation" } } # test help stepi send "help stepi\n" expect { -re "Step one instruction exactly..* Argument N means do this N times .or till program stops for another reason...*$prompt $"\ { pass "help stepi" } -re "$prompt $" { fail "help stepi" } timeout { fail "(timeout) help stepi" } } # test help signal send "help signal\n" expect { -re "Continue program giving it signal.*$prompt $"\ { pass "help signal" } -re "$prompt $" { fail "help signal" } timeout { fail "(timeout) help signal" } } # test help source # vxgdb reads .vxgdbinit send "help source\n" expect { -re "Read commands from a file named FILE..* Note that the file \".(vx)?gdbinit\" is read automatically in this way.* when gdb is started..*$prompt $"\ { pass "help source" } -re "$prompt $" { fail "help source" } timeout { fail "(timeout) help source" } } # test help stack send "help stack\n" expect { -re "Examining the stack..* The stack is made up of stack frames. Gdb assigns numbers to stack frames.* counting from zero for the innermost .currently executing. frame..* At any time gdb identifies one frame as the \"selected\" frame..* Variable lookups are done with respect to the selected frame..* When the program being debugged stops, gdb selects the innermost frame..* The commands below can be used to select other frames by number or address..* List of commands:.* bt -- Print backtrace of all stack frames.* backtrace -- Print backtrace of all stack frames.* select-frame -- Select a stack frame without printing anything.* frame -- Select and print a stack frame.* down -- Select and print stack frame called by this one.* up -- Select and print stack frame that called this one.* return -- Make selected stack frame return to its caller.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help stack" } -re "$prompt $" { fail "help stack" } timeout { fail "(timeout) help stack" } } # test help status send "help status\n" expect { -re "Status inquiries..* List of commands:.* show -- Generic command for showing things about the debugger.* info -- Generic command for showing things about the program being debugged.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help status" } -re "$prompt $" { fail "help status" } timeout { fail "(timeout) help status" } } # test help support # FIXME -- Ultrix hangs randomly on this very long output from gdb and # continues with its output only if something is sent to gdb. # This behaviour throws expect and gdb out of sync, so we better skip this # test. # Also, if the system is slow, it may time out because the output is large. # Just skip the test rather than bothering with increasing the timeout. if 0 then { send "help support\n" expect { -re "Support facilities..* List of commands:.* show confirm -- Show whether to confirm potentially dangerous operations.* show history -- Generic command for showing command history parameters.* down-silently -- Same as the `down' command.* up-silently -- Same as the `up' command.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help support" } -re "$prompt $" { fail "help support" } timeout { fail "(timeout) help support" } } } # test help symbol-file send "help symbol-file\n" expect { -re "Load symbol table from executable file FILE..* The `file' command can also load symbol tables, as well as setting the file.* to execute..*$prompt $"\ { pass "help symbol-file" } -re "$prompt $" { fail "help symbol-file" } timeout { fail "(timeout) help symbol-file" } } # test help target child send "help target child\n" expect { -re "Unix child process .started by the \"run\" command...*$prompt $"\ { pass "help target child (non-procfs version)" } -re "Undefined target command: \"child\". Try \"help target\"..*$prompt $"\ { pass "help target child (procfs version)" } -re "$prompt $" { fail "help target child" } timeout { fail "(timeout) help target child" } } # test help target procfs send "help target procfs\n" expect { -re "Unix /proc child process .started by the \"run\" command...*$prompt $"\ { pass "help target procfs (procfs version)" } -re "Undefined target command: \"procfs\". Try \"help target\"..*$prompt $"\ { pass "help target procfs (non-procfs version)" } -re "$prompt $" { fail "help target procfs" } timeout { fail "(timeout) help target procfs" } } # test help target core send "help target core\n" expect { -re "Use a core file as a target. Specify the filename of the core file..*$prompt $"\ { pass "help target core" } -re "Undefined target command: \"core\". Try \"help target\"..*$prompt $"\ { pass "help target core" } -re "$prompt $" { fail "help target core" } timeout { fail "(timeout) help target core" } } # test help target exec send "help target exec\n" expect { -re "Use an executable file as a target..* Specify the filename of the executable file..*$prompt $"\ { pass "help target exec" } -re "$prompt $" { fail "help target exec" } timeout { fail "(timeout) help target exec" } } # test help target remote if ![istarget "*-*-udi*"] then { send "help target remote\n" expect { -re "Use a remote computer via a serial line, using a gdb-specific protocol..* Specify the serial device it is connected to .e.g. /dev/ttya...*$prompt $"\ { pass "help target remote" } -re "$prompt $" { fail "help target remote" } timeout { fail "(timeout) help target remote" } } } # test help target # the child process target may be "target child" or "target procfs" send "help target\n" expect { -re "Connect to a target machine or process..* The first argument is the type or protocol of the target machine..* Remaining arguments are interpreted by the target protocol. For more.* information on the arguments for a particular protocol, type.* `help target ' followed by the protocol name..* List of target subcommands:.* target exec -- Use an executable file as a target.* Type \"help target\" followed by target subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help target" } -re "$prompt $" { fail "help target" } timeout { fail "(timeout) help target" } } # test help tbreak send "help tbreak\n" expect { -re "Set a temporary breakpoint.*$prompt $"\ { pass "help tbreak" } -re "$prompt $" { fail "help tbreak" } timeout { fail "(timeout) help tbreak" } } # test help tty send "help tty\n" expect { -re "Set terminal for future runs of program being debugged..*$prompt $"\ { pass "help tty" } -re "$prompt $" { fail "help tty" } timeout { fail "(timeout) help tty" } } # test help until "u" abbreviation send "help u\n" expect { -re "Execute until the program reaches a source line greater than the current.* or a specified line or address or function .same args as break command...* Execution will also stop upon exit from the current stack frame..*$prompt $"\ { pass "help until \"u\" abbreviation" } -re "$prompt $" { fail "help until \"u\" abbreviation" } timeout { fail "(timeout) help until \"u\" abbreviation" } } # test help until send "help until\n" expect { -re "Execute until the program reaches a source line greater than the current.* or a specified line or address or function .same args as break command...* Execution will also stop upon exit from the current stack frame..*$prompt $"\ { pass "help until" } -re "$prompt $" { fail "help until" } timeout { fail "(timeout) help until" } } # test help undisplay send "help undisplay\n" expect { -re "Cancel some expressions to be displayed when program stops..* Arguments are the code numbers of the expressions to stop displaying..* No argument means cancel all automatic-display expressions..* \"delete display\" has the same effect as this command..* Do \"info display\" to see current list of code numbers..*$prompt $"\ { pass "help undisplay" } -re "$prompt $" { fail "help undisplay" } timeout { fail "(timeout) help undisplay" } } # test help unset environment send "help unset environment\n" expect { -re "Cancel environment variable VAR for the program..* This does not affect the program until the next \"run\" command..*$prompt $"\ { pass "help unset environment" } -re "$prompt $" { fail "help unset environment" } timeout { fail "(timeout) help unset environment" } } # test help unset send "help unset\n" expect { -re "Complement to certain \"set\" commands.* List of unset subcommands:.* unset environment -- Cancel environment variable VAR for the program.* Type \"help unset\" followed by unset subcommand name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help unset" } -re "$prompt $" { fail "help unset" } timeout { fail "(timeout) help unset" } } # test help up send "help up\n" expect { -re "Select and print stack frame that called this one..* An argument says how many frames up to go..*$prompt $"\ { pass "help up" } -re "$prompt $" { fail "help up" } timeout { fail "(timeout) help up" } } # test help up-silently send "help up-silently\n" expect { -re "Same as the `up' command, but does not print anything..* This is useful in command scripts..*$prompt $"\ { pass "help up-silently" } -re "$prompt $" { fail "help up-silently" } timeout { fail "(timeout) help up-silently" } } # test help user-defined send "help user-defined\n" expect { -re "User-defined commands..* The commands in this class are those defined by the user..* Use the \"define\" command to define a command..* List of commands:.* Type \"help\" followed by command name for full documentation..* Command name abbreviations are allowed if unambiguous..*$prompt $"\ { pass "help user-defined" } -re "$prompt $" { fail "help user-defined" } timeout { fail "(timeout) help user-defined" } } # test help watch send "help watch\n" expect { -re "Set a watchpoint for an expression..* A watchpoint stops execution of your program whenever the value of.* an expression changes..*$prompt $"\ { pass "help watch" } -re "$prompt $" { fail "help watch" } timeout { fail "(timeout) help watch" } } # test help whatis send "help whatis\n" expect { -re "Print data type of expression EXP..*$prompt $"\ { pass "help whatis" } -re "$prompt $" { fail "help whatis" } timeout { fail "(timeout) help whatis" } } # test help where send "help where\n" expect { -re "Print backtrace of all stack frames, or innermost COUNT frames..* With a negative argument, print outermost -COUNT frames..*$prompt $"\ { pass "help where" } -re "$prompt $" { fail "help where" } timeout { fail "(timeout) help where" } } # test help x send "help x\n" expect { -re "Examine memory: x/FMT ADDRESS..* ADDRESS is an expression for the memory address to examine..* FMT is a repeat count followed by a format letter and a size letter..* Defaults for format and size letters are those previously used..* Default count is 1. Default address is following last thing printed.* with this command or \"print\"..*$prompt $"\ { pass "help x" } -re "$prompt $" { fail "help x" } timeout { fail "(timeout) help x" } } # test help info bogus-gdb-command send "help info bogus-gdb-command\n" expect { -re "Undefined info command: \"bogus-gdb-command\". Try \"help info\"..*$prompt $"\ { pass "help info bogus-gdb-command" } -re "$prompt $" { fail "help info bogus-gdb-command" } timeout { fail "(timeout) help info bogus-gdb-command" } } # test help gotcha send "help gotcha\n" expect { -re "Undefined command: \"gotcha\". Try \"help\"..*$prompt $"\ { pass "help gotcha" } -re "$prompt $" { fail "help gotcha" } timeout { fail "(timeout) help gotcha" } }