From patchwork Wed Aug 5 23:33:59 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Seitz X-Patchwork-Id: 8036 Received: (qmail 75827 invoked by alias); 5 Aug 2015 23:34:05 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 75818 invoked by uid 89); 5 Aug 2015 23:34:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL, BAYES_50, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Wed, 05 Aug 2015 23:34:01 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 6D244F99FA for ; Wed, 5 Aug 2015 23:34:00 +0000 (UTC) Received: from valrhona.uglyboxes.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t75NXxad023535 for ; Wed, 5 Aug 2015 19:34:00 -0400 Subject: [PATCH v6 9/9] Explicit locations: documentation updates From: Keith Seitz To: gdb-patches@sourceware.org Date: Wed, 05 Aug 2015 16:33:59 -0700 Message-ID: <20150805233334.21646.29492.stgit@valrhona.uglyboxes.com> In-Reply-To: <20150805232802.21646.88440.stgit@valrhona.uglyboxes.com> References: <20150805232802.21646.88440.stgit@valrhona.uglyboxes.com> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-IsSubscribed: yes * This patch has previously been approved but contains modifications. * Differences in this revision: 1. NEWS items moved to "Changes since GDB 7.10" section. --- This patch adds documentation for explicit locations to both the User Manual and gdb's online help system. gdb/ChangeLog: * NEWS: Mention explicit locations. * breakpoint.c [LOCATION_HELP_STRING]: New macro. [BREAK_ARGS_HELP]: Use LOCATION_HELP_STRING. (_initialize_breakpoint): Update documentation for "clear", "break", "trace", "strace", "ftrace", and "dprintf". gdb/doc/ChangeLog: * gdb.texinfo (Thread-Specific Breakpoints, Printing Source Lines): Use "location(s)"instead of "linespec(s)". (Specifying a Location): Rewrite. Add subsections describing linespec, address, and explicit locations. Add node/menu for each subsection. (Source and Machine Code, C Preprocessor Macros) (Create and Delete Trace points) (Extensions for Ada Tasks): Use "location(s)" instead of "linespec(s)". (Continuing at a Different Address): Remove "linespec" examples. Add reference to "Specify a Location" (The -break-insert Command): Rewrite. Add anchor. Add reference to appropriate manual section discussing locations. (The -dprintf-insert Command): Refer to -break-insert for specification of 'location'. gdb/testsuite/ChangeLog: * gdb.base/help.exp: Update help_breakpoint_text. --- gdb/NEWS | 4 + gdb/breakpoint.c | 70 +++++++---- gdb/doc/gdb.texinfo | 244 +++++++++++++++++++++++++-------------- gdb/testsuite/gdb.base/help.exp | 2 4 files changed, 204 insertions(+), 116 deletions(-) diff --git a/gdb/NEWS b/gdb/NEWS index 7ce9758..608ec62 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -5,6 +5,10 @@ * Support for tracepoints on aarch64-linux was added in GDBserver. +* GDB now allows users to specify explicit locations, bypassing + the linespec parser. This feature is also available to GDB/MI + clients. + *** Changes in GDB 7.10 * Support for process record-replay and reverse debugging on aarch64*-linux* diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 83cfa68..31775d2 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -15557,26 +15557,46 @@ all_tracepoints (void) } +/* This help string is used to consolidate all the help string for specifying + locations used by several commands. */ + +#define LOCATION_HELP_STRING \ +"Linespecs are colon-separated lists of location parameters, such as\n\ +source filename, function name, label name, and line number.\n\ +Example: To specify the start of a label named \"the_top\" in the\n\ +function \"fact\" in the file \"factorial.c\", use\n\ +\"factorial.c:fact:the_top\".\n\ +\n\ +Address locations begin with \"*\" and specify an exact address in the\n\ +program. Example: To specify the fourth byte past the start function\n\ +\"main\", use \"*main + 4\".\n\ +\n\ +Explicit locations are similar to linespecs but use an option/argument\n\ +syntax to specify location parameters.\n\ +Example: To specify the start of the label named \"the_top\" in the\n\ +function \"fact\" in the file \"factorial.c\", use \"-source factorial.c\n\ +-function fact -label the_top\".\n" + /* This help string is used for the break, hbreak, tbreak and thbreak commands. It is defined as a macro to prevent duplication. COMMAND should be a string constant containing the name of the command. */ + #define BREAK_ARGS_HELP(command) \ command" [PROBE_MODIFIER] [LOCATION] [thread THREADNUM] [if CONDITION]\n\ PROBE_MODIFIER shall be present if the command is to be placed in a\n\ probe point. Accepted values are `-probe' (for a generic, automatically\n\ guessed probe type), `-probe-stap' (for a SystemTap probe) or \n\ `-probe-dtrace' (for a DTrace probe).\n\ -LOCATION may be a line number, function name, or \"*\" and an address.\n\ -If a line number is specified, break at start of code for that line.\n\ -If a function is specified, break at start of code for that function.\n\ -If an address is specified, break at that exact address.\n\ +LOCATION may be a linespec, address, or explicit location as described\n\ +below.\n\ +\n\ With no LOCATION, uses current execution address of the selected\n\ stack frame. This is useful for breaking on return to a stack frame.\n\ \n\ THREADNUM is the number from \"info threads\".\n\ CONDITION is a boolean expression.\n\ -\n\ +\n" LOCATION_HELP_STRING "\n\ Multiple breakpoints at one place are permitted, and useful if their\n\ conditions are different.\n\ \n\ @@ -16023,20 +16043,17 @@ This command may be abbreviated \"delete\"."), &deletelist); add_com ("clear", class_breakpoint, clear_command, _("\ -Clear breakpoint at specified line or function.\n\ -Argument may be line number, function name, or \"*\" and an address.\n\ -If line number is specified, all breakpoints in that line are cleared.\n\ -If function is specified, breakpoints at beginning of function are cleared.\n\ -If an address is specified, breakpoints at that address are cleared.\n\ +Clear breakpoint at specified location.\n\ +Argument may be a linespec, explicit, or address location as described below.\n\ \n\ With no argument, clears all breakpoints in the line that the selected frame\n\ -is executing in.\n\ -\n\ +is executing in.\n" +"\n" LOCATION_HELP_STRING "\n\ See also the \"delete\" command which clears breakpoints by number.")); add_com_alias ("cl", "clear", class_breakpoint, 1); c = add_com ("break", class_breakpoint, break_command, _("\ -Set breakpoint at specified line or function.\n" +Set breakpoint at specified location.\n" BREAK_ARGS_HELP ("break"))); set_cmd_completer (c, location_completer); @@ -16199,7 +16216,7 @@ hardware.)"), /* Tracepoint manipulation commands. */ c = add_com ("trace", class_breakpoint, trace_command, _("\ -Set a tracepoint at specified line or function.\n\ +Set a tracepoint at specified location.\n\ \n" BREAK_ARGS_HELP ("trace") "\n\ Do \"help tracepoints\" for info on other tracepoint commands.")); @@ -16211,31 +16228,27 @@ Do \"help tracepoints\" for info on other tracepoint commands.")); add_com_alias ("trac", "trace", class_alias, 1); c = add_com ("ftrace", class_breakpoint, ftrace_command, _("\ -Set a fast tracepoint at specified line or function.\n\ +Set a fast tracepoint at specified location.\n\ \n" BREAK_ARGS_HELP ("ftrace") "\n\ Do \"help tracepoints\" for info on other tracepoint commands.")); set_cmd_completer (c, location_completer); c = add_com ("strace", class_breakpoint, strace_command, _("\ -Set a static tracepoint at specified line, function or marker.\n\ +Set a static tracepoint at location or marker.\n\ \n\ strace [LOCATION] [if CONDITION]\n\ -LOCATION may be a line number, function name, \"*\" and an address,\n\ -or -m MARKER_ID.\n\ -If a line number is specified, probe the marker at start of code\n\ -for that line. If a function is specified, probe the marker at start\n\ -of code for that function. If an address is specified, probe the marker\n\ -at that exact address. If a marker id is specified, probe the marker\n\ -with that name. With no LOCATION, uses current execution address of\n\ -the selected stack frame.\n\ +LOCATION may be a linespec, explicit, or address location (described below) \n\ +or -m MARKER_ID.\n\n\ +If a marker id is specified, probe the marker with that name. With\n\ +no LOCATION, uses current execution address of the selected stack frame.\n\ Static tracepoints accept an extra collect action -- ``collect $_sdata''.\n\ This collects arbitrary user data passed in the probe point call to the\n\ tracing library. You can inspect it when analyzing the trace buffer,\n\ by printing the $_sdata variable like any other convenience variable.\n\ \n\ CONDITION is a boolean expression.\n\ -\n\ +\n" LOCATION_HELP_STRING "\n\ Multiple tracepoints at one place are permitted, and useful if their\n\ conditions are different.\n\ \n\ @@ -16387,11 +16400,10 @@ an instruction at any address within the [START-LOCATION, END-LOCATION]\n\ range (including START-LOCATION and END-LOCATION).")); c = add_com ("dprintf", class_breakpoint, dprintf_command, _("\ -Set a dynamic printf at specified line or function.\n\ +Set a dynamic printf at specified location.\n\ dprintf location,format string,arg1,arg2,...\n\ -location may be a line number, function name, or \"*\" and an address.\n\ -If a line number is specified, break at start of code for that line.\n\ -If a function is specified, break at start of code for that function.")); +location may be a linespec, explicit, or address location.\n" +"\n" LOCATION_HELP_STRING)); set_cmd_completer (c, location_completer); add_setshow_enum_cmd ("dprintf-style", class_support, diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 9e2ecd1..8f8a98a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -6060,9 +6060,9 @@ breakpoints on all threads, or on a particular thread. @cindex breakpoints and threads @cindex thread breakpoints @kindex break @dots{} thread @var{threadno} -@item break @var{linespec} thread @var{threadno} -@itemx break @var{linespec} thread @var{threadno} if @dots{} -@var{linespec} specifies source lines; there are several ways of +@item break @var{location} thread @var{threadno} +@itemx break @var{location} thread @var{threadno} if @dots{} +@var{location} specifies source lines; there are several ways of writing them (@pxref{Specify Location}), but the effect is always to specify some source line. @@ -7526,21 +7526,21 @@ argument of @samp{-}; that argument is preserved in repetition so that each repetition moves up in the source file. In general, the @code{list} command expects you to supply zero, one or two -@dfn{linespecs}. Linespecs specify source lines; there are several ways +@dfn{locations}. Locations specify source lines; there are several ways of writing them (@pxref{Specify Location}), but the effect is always to specify some source line. Here is a complete description of the possible arguments for @code{list}: @table @code -@item list @var{linespec} -Print lines centered around the line specified by @var{linespec}. +@item list @var{location} +Print lines centered around the line specified by @var{location}. @item list @var{first},@var{last} Print lines from @var{first} to @var{last}. Both arguments are -linespecs. When a @code{list} command has two linespecs, and the -source file of the second linespec is omitted, this refers to -the same source file as the first linespec. +locations. When a @code{list} command has two locations, and the +source file of the second location is omitted, this refers to +the same source file as the first location. @item list ,@var{last} Print lines ending with @var{last}. @@ -7561,15 +7561,28 @@ As described in the preceding table. @node Specify Location @section Specifying a Location @cindex specifying location -@cindex linespec +@cindex location +@cindex source location + +@menu +* Linespec Locations:: Linespec locations +* Explicit Locations:: Explicit locations +* Address Locations:: Address locations +@end menu Several @value{GDBN} commands accept arguments that specify a location of your program's code. Since @value{GDBN} is a source-level -debugger, a location usually specifies some line in the source code; -for that reason, locations are also known as @dfn{linespecs}. +debugger, a location usually specifies some line in the source code. +Locations may be specified using three different formats: +linespec locations, explicit locations, or address locations. -Here are all the different ways of specifying a code location that -@value{GDBN} understands: +@node Linespec Locations +@subsection Linespec Locations +@cindex linespec locations + +A @dfn{linespec} is a colon-separated list of source location parameters such +as file name, function name, etc. Here are all the different ways of +specifying a linespec: @table @code @item @var{linenum} @@ -7608,25 +7621,93 @@ function name to avoid ambiguity when there are identically named functions in different source files. @item @var{label} -Specifies the line at which the label named @var{label} appears. -@value{GDBN} searches for the label in the function corresponding to -the currently selected stack frame. If there is no current selected -stack frame (for instance, if the inferior is not running), then -@value{GDBN} will not search for a label. - -@item *@var{address} -Specifies the program address @var{address}. For line-oriented -commands, such as @code{list} and @code{edit}, this specifies a source -line that contains @var{address}. For @code{break} and other -breakpoint oriented commands, this can be used to set breakpoints in +Specifies the line at which the label named @var{label} appears +in the function corresponding to the currently selected stack frame. +If there is no current selected stack frame (for instance, if the inferior +is not running), then @value{GDBN} will not search for a label. + +@cindex breakpoint at static probe point +@item -pstap|-probe-stap @r{[}@var{objfile}:@r{[}@var{provider}:@r{]}@r{]}@var{name} +The @sc{gnu}/Linux tool @code{SystemTap} provides a way for +applications to embed static probes. @xref{Static Probe Points}, for more +information on finding and using static probes. This form of linespec +specifies the location of such a static probe. + +If @var{objfile} is given, only probes coming from that shared library +or executable matching @var{objfile} as a regular expression are considered. +If @var{provider} is given, then only probes from that provider are considered. +If several probes match the spec, @value{GDBN} will insert a breakpoint at +each one of those probes. +@end table + +@node Explicit Locations +@subsection Explicit Locations +@cindex explicit locations + +@dfn{Explicit locations} allow the user to directly specify the source +location's parameters using option-value pairs. + +Explicit locations are useful when several functions, labels, or +file names have the same name (base name for files) in the program's +sources. In these cases, explicit locations point to the source +line you meant more accurately and unambiguously. Also, using +explicit locations might be faster in large programs. + +For example, the linespec @samp{foo:bar} may refer to a function @code{bar} +defined in the file named @file{foo} or the label @code{bar} in a function +named @code{foo}. @value{GDBN} must search either the file system or +the symbol table to know. + +The list of valid explicit location options is summarized in the +following table: + +@table @code +@item -source @var{filename} +The value specifies the source file name. To differentiate between +files with the same base name, prepend as many directories as is necessary +to uniquely identify the desired file, e.g., @file{foo/bar/baz.c}. Otherwise +@value{GDBN} will use the first file it finds with the given base +name. This option requires the use of either @code{-function} or @code{-line}. + +@item -function @var{function} +The value specifies the name of a function. Operations +on function locations unmodified by other options (such as @code{-label} +or @code{-line}) refer to the line that begins the body of the function. +In C, for example, this is the line with the open brace. + +@item -label @var{label} +The value specifies the name of a label. When the function +name is not specified, the label is searched in the function of the currently +selected stack frame. + +@item -line @var{number} +The value specifies a line offset for the location. The offset may either +be absolute (@code{-line 3}) or relative (@code{-line +3}), depending on +the command. When specified without any other options, the line offset is +relative to the current line. +@end table + +Explicit location options may be abbreviated by omitting any non-unique +trailing characters from the option name, e.g., @code{break -s main.c -li 3}. + +@node Address Locations +@subsection Address Locations +@cindex address locations + +@dfn{Address locations} indicate a specific program address. They have +the generalized form *@var{address}. + +For line-oriented commands, such as @code{list} and @code{edit}, this +specifies a source line that contains @var{address}. For @code{break} and +other breakpoint-oriented commands, this can be used to set breakpoints in parts of your program which do not have debugging information or source files. Here @var{address} may be any expression valid in the current working language (@pxref{Languages, working language}) that specifies a code address. In addition, as a convenience, @value{GDBN} extends the -semantics of expressions used in locations to cover the situations -that frequently happen during debugging. Here are the various forms +semantics of expressions used in locations to cover several situations +that frequently occur during debugging. Here are the various forms of @var{address}: @table @code @@ -7651,22 +7732,6 @@ specify the function unambiguously, e.g., if there are several functions with identical names in different source files. @end table -@cindex breakpoint at static probe point -@item -pstap|-probe-stap @r{[}@var{objfile}:@r{[}@var{provider}:@r{]}@r{]}@var{name} -The @sc{gnu}/Linux tool @code{SystemTap} provides a way for -applications to embed static probes. @xref{Static Probe Points}, for more -information on finding and using static probes. This form of linespec -specifies the location of such a static probe. - -If @var{objfile} is given, only probes coming from that shared library -or executable matching @var{objfile} as a regular expression are considered. -If @var{provider} is given, then only probes from that provider are considered. -If several probes match the spec, @value{GDBN} will insert a breakpoint at -each one of those probes. - -@end table - - @node Edit @section Editing Source Files @cindex editing source files @@ -7984,9 +8049,9 @@ well as hex. @table @code @kindex info line -@item info line @var{linespec} +@item info line @var{location} Print the starting and ending addresses of the compiled code for -source line @var{linespec}. You can specify source lines in any of +source line @var{location}. You can specify source lines in any of the ways documented in @ref{Specify Location}. @end table @@ -8004,7 +8069,7 @@ Line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350. @noindent @cindex code address and its source line We can also inquire (using @code{*@var{addr}} as the form for -@var{linespec}) what source line covers a particular address: +@var{location}) what source line covers a particular address: @smallexample (@value{GDBP}) info line *0x63ff Line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404. @@ -8114,7 +8179,7 @@ Dump of assembler code from 0x400281 to 0x40028b: End of assembler dump. @end smallexample -Addresses cannot be specified as a linespec (@pxref{Specify Location}). +Addresses cannot be specified as a location (@pxref{Specify Location}). So, for example, if you want to disassemble function @code{bar} in file @file{foo.c}, you must type @samp{disassemble 'foo.c'::bar} and not @samp{disassemble foo.c:bar}. @@ -11767,9 +11832,9 @@ argument processing and the beginning of @var{macro} for non C-like macros where the macro may begin with a hyphen. @kindex info macros -@item info macros @var{linespec} +@item info macros @var{location} Show all macro definitions that are in effect at the location specified -by @var{linespec}, and describe the source location or compiler +by @var{location}, and describe the source location or compiler command-line where those definitions were established. @kindex macro define @@ -12074,12 +12139,11 @@ conditions and actions. @kindex trace @item trace @var{location} The @code{trace} command is very similar to the @code{break} command. -Its argument @var{location} can be a source line, a function name, or -an address in the target program. @xref{Specify Location}. The -@code{trace} command defines a tracepoint, which is a point in the -target program where the debugger will briefly stop, collect some -data, and then allow the program to continue. Setting a tracepoint or -changing its actions takes effect immediately if the remote stub +Its argument @var{location} can be any valid location. +@xref{Specify Location}. The @code{trace} command defines a tracepoint, +which is a point in the target program where the debugger will briefly stop, +collect some data, and then allow the program to continue. Setting a tracepoint +or changing its actions takes effect immediately if the remote stub supports the @samp{InstallInTrace} feature (@pxref{install tracepoint in tracing}). If remote stub doesn't support the @samp{InstallInTrace} feature, all @@ -15959,14 +16023,14 @@ from the current task to the given task. #4 0x804aacc in un () at un.adb:5 @end smallexample -@item break @var{linespec} task @var{taskno} -@itemx break @var{linespec} task @var{taskno} if @dots{} +@item break @var{location} task @var{taskno} +@itemx break @var{location} task @var{taskno} if @dots{} @cindex breakpoints and tasks, in Ada @cindex task breakpoints, in Ada @kindex break @dots{} task @var{taskno}@r{ (Ada)} These commands are like the @code{break @dots{} thread @dots{}} command (@pxref{Thread Stops}). The -@var{linespec} argument specifies source lines, as described +@var{location} argument specifies source lines, as described in @ref{Specify Location}. Use the qualifier @samp{task @var{taskno}} with a breakpoint command @@ -16894,20 +16958,17 @@ an address of your own choosing, with the following commands: @table @code @kindex jump @kindex j @r{(@code{jump})} -@item jump @var{linespec} -@itemx j @var{linespec} -@itemx jump @var{location} +@item jump @var{location} @itemx j @var{location} -Resume execution at line @var{linespec} or at address given by -@var{location}. Execution stops again immediately if there is a -breakpoint there. @xref{Specify Location}, for a description of the -different forms of @var{linespec} and @var{location}. It is common +Resume execution at @var{location}. Execution stops again immediately +if there is a breakpoint there. @xref{Specify Location}, for a description +of the different forms of @var{location}. It is common practice to use the @code{tbreak} command in conjunction with @code{jump}. @xref{Set Breaks, ,Setting Breakpoints}. The @code{jump} command does not change the current stack frame, or the stack pointer, or the contents of any memory location or any -register other than the program counter. If line @var{linespec} is in +register other than the program counter. If @var{location} is in a different function from the one currently executing, the results may be bizarre if the two functions expect different patterns of arguments or of local variables. For this reason, the @code{jump} command requests @@ -26846,6 +26907,7 @@ N.A. @subheading The @code{-break-insert} Command @findex -break-insert +@anchor{-break-insert} @subsubheading Synopsis @@ -26858,16 +26920,35 @@ N.A. @noindent If specified, @var{location}, can be one of: -@itemize @bullet -@item function -@c @item +offset -@c @item -offset -@c @item linenum -@item filename:linenum -@item filename:function -@item *address -@end itemize +@table @var +@item linespec location +A linespec location. @xref{Linespec Locations}. + +@item explicit location +An explicit location. @sc{gdb/mi} explicit locations are +analogous to the CLI's explicit locations using the option names +listed below. @xref{Explicit Locations}. + +@table @samp +@item --source @var{filename} +The source file name of the location. This option requires the use +of either @samp{--function} or @samp{--line}. + +@item --function @var{function} +The name of a function or method. +@item --label @var{label} +The name of a label. + +@item --line @var{lineoffset} +An absolute or relative line offset from the start of the location. +@end table + +@item address location +An address location, *@var{address}. @xref{Address Locations}. +@end table + +@noindent The possible optional parameters of this command are: @table @samp @@ -26959,17 +27040,8 @@ times="0"@}]@} @end smallexample @noindent -If specified, @var{location}, can be one of: - -@itemize @bullet -@item @var{function} -@c @item +offset -@c @item -offset -@c @item @var{linenum} -@item @var{filename}:@var{linenum} -@item @var{filename}:function -@item *@var{address} -@end itemize +If supplied, @var{location} may be specified the same way as for +the @code{-break-insert} command. @xref{-break-insert}. The possible optional parameters of this command are: diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp index 565e339..22e6aa3 100644 --- a/gdb/testsuite/gdb.base/help.exp +++ b/gdb/testsuite/gdb.base/help.exp @@ -58,7 +58,7 @@ test_class_help "user-defined" { } # Test help of an abbreviated command. "break" is picked at random. -set help_breakpoint_text "Set breakpoint at specified line or function\..*" +set help_breakpoint_text "Set breakpoint at specified location\..*" # test help breakpoint "b" abbreviation gdb_test "help b" $help_breakpoint_text "help breakpoint \"b\" abbreviation" # test help breakpoint "br" abbreviation