mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-04 18:36:32 +00:00
* gdb.texinfo (Specify Location): New section.
(Delete Breaks, Edit, Set Breaks): Remove description of locations. Instead, add a reference to "Specify Location". (Machine Code, Jumping, Thread Stops, Continuing and Stepping) (Symbols): Refer to "Specify Location" for the valid forms of linespecs and locations.
This commit is contained in:
parent
85f7a9cbe2
commit
2a25a5baa5
@ -1,3 +1,12 @@
|
||||
2008-01-19 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* gdb.texinfo (Specify Location): New section.
|
||||
(Delete Breaks, Edit, Set Breaks): Remove description of
|
||||
locations. Instead, add a reference to "Specify Location".
|
||||
(Machine Code, Jumping, Thread Stops, Continuing and Stepping)
|
||||
(Symbols): Refer to "Specify Location" for the valid forms of
|
||||
linespecs and locations.
|
||||
|
||||
2008-01-18 Markus Deuling <deuling@de.ibm.com>
|
||||
|
||||
* gdbint.texinfo (Target Conditionals): Replace the description of
|
||||
|
@ -2836,41 +2836,18 @@ number of the breakpoint you've set most recently; see @ref{Convenience
|
||||
Vars,, Convenience Variables}, for a discussion of what you can do with
|
||||
convenience variables.
|
||||
|
||||
You have several ways to say where the breakpoint should go.
|
||||
|
||||
@table @code
|
||||
@item break @var{function}
|
||||
Set a breakpoint at entry to function @var{function}.
|
||||
@item break @var{location}
|
||||
Set a breakpoint at the given @var{location}, which can specify a
|
||||
function name, a line number, or an address of an instruction.
|
||||
(@xref{Specify Location}, for a list of all the possible ways to
|
||||
specify a @var{location}.) The breakpoint will stop your program just
|
||||
before it executes any of the code in the specified @var{location}.
|
||||
|
||||
When using source languages that permit overloading of symbols, such as
|
||||
C@t{++}, @var{function} may refer to more than one possible place to break.
|
||||
C@t{++}, a function name may refer to more than one possible place to break.
|
||||
@xref{Breakpoint Menus,,Breakpoint Menus}, for a discussion of that situation.
|
||||
|
||||
@item break +@var{offset}
|
||||
@itemx break -@var{offset}
|
||||
Set a breakpoint some number of lines forward or back from the position
|
||||
at which execution stopped in the currently selected @dfn{stack frame}.
|
||||
(@xref{Frames, ,Frames}, for a description of stack frames.)
|
||||
|
||||
@item break @var{linenum}
|
||||
Set a breakpoint at line @var{linenum} in the current source file.
|
||||
The current source file is the last file whose source text was printed.
|
||||
The breakpoint will stop your program just before it executes any of the
|
||||
code on that line.
|
||||
|
||||
@item break @var{filename}:@var{linenum}
|
||||
Set a breakpoint at line @var{linenum} in source file @var{filename}.
|
||||
|
||||
@item break @var{filename}:@var{function}
|
||||
Set a breakpoint at entry to function @var{function} found in file
|
||||
@var{filename}. Specifying a file name as well as a function name is
|
||||
superfluous except when multiple files contain similarly named
|
||||
functions.
|
||||
|
||||
@item break *@var{address}
|
||||
Set a breakpoint at address @var{address}. You can use this to set
|
||||
breakpoints in parts of your program which do not have debugging
|
||||
information or source files.
|
||||
|
||||
@item break
|
||||
When called without any arguments, @code{break} sets a breakpoint at
|
||||
the next instruction to be executed in the selected stack frame
|
||||
@ -2926,7 +2903,6 @@ For remote targets, you can restrict the number of hardware
|
||||
breakpoints @value{GDBN} will use, see @ref{set remote
|
||||
hardware-breakpoint-limit}.
|
||||
|
||||
|
||||
@kindex thbreak
|
||||
@item thbreak @var{args}
|
||||
Set a hardware-assisted breakpoint enabled only for one stop. @var{args}
|
||||
@ -3520,6 +3496,12 @@ selected stack frame (@pxref{Selection, ,Selecting a Frame}). When
|
||||
the innermost frame is selected, this is a good way to delete a
|
||||
breakpoint where your program just stopped.
|
||||
|
||||
@item clear @var{location}
|
||||
Delete any breakpoints set at the specified @var{location}.
|
||||
@xref{Specify Location}, for the various forms of @var{location}; the
|
||||
most useful ones are listed below:
|
||||
|
||||
@table @code
|
||||
@item clear @var{function}
|
||||
@itemx clear @var{filename}:@var{function}
|
||||
Delete any breakpoints set at entry to the named @var{function}.
|
||||
@ -3528,6 +3510,7 @@ Delete any breakpoints set at entry to the named @var{function}.
|
||||
@itemx clear @var{filename}:@var{linenum}
|
||||
Delete any breakpoints set at or within the code of the specified
|
||||
@var{linenum} of the specified @var{filename}.
|
||||
@end table
|
||||
|
||||
@cindex delete breakpoints
|
||||
@kindex delete
|
||||
@ -4158,8 +4141,8 @@ argument.
|
||||
@itemx u @var{location}
|
||||
Continue running your program until either the specified location is
|
||||
reached, or the current stack frame returns. @var{location} is any of
|
||||
the forms of argument acceptable to @code{break} (@pxref{Set Breaks,
|
||||
,Setting Breakpoints}). This form of the command uses breakpoints, and
|
||||
the forms described in @ref{Specify Location}.
|
||||
This form of the command uses temporary breakpoints, and
|
||||
hence is quicker than @code{until} without an argument. The specified
|
||||
location is actually reached only if it is in the current frame. This
|
||||
implies that @code{until} can be used to skip over recursive function
|
||||
@ -4182,8 +4165,9 @@ invocations have returned.
|
||||
@kindex advance @var{location}
|
||||
@itemx advance @var{location}
|
||||
Continue running the program up to the given @var{location}. An argument is
|
||||
required, which should be of the same form as arguments for the @code{break}
|
||||
command. Execution will also stop upon exit from the current stack
|
||||
required, which should be of one of the forms described in
|
||||
@ref{Specify Location}.
|
||||
Execution will also stop upon exit from the current stack
|
||||
frame. This command is similar to @code{until}, but @code{advance} will
|
||||
not skip over recursive function calls, and the target location doesn't
|
||||
have to be in the same frame as the current one.
|
||||
@ -4341,7 +4325,8 @@ breakpoints on all threads, or on a particular thread.
|
||||
@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
|
||||
writing them, but the effect is always to specify some source line.
|
||||
writing them (@pxref{Specify Location}), but the effect is always to
|
||||
specify some source line.
|
||||
|
||||
Use the qualifier @samp{thread @var{threadno}} with a breakpoint command
|
||||
to specify that you only want @value{GDBN} to stop the program when a
|
||||
@ -4904,6 +4889,7 @@ prefer to use Emacs facilities to view source; see @ref{Emacs, ,Using
|
||||
|
||||
@menu
|
||||
* List:: Printing source lines
|
||||
* Specify Location:: How to specify code locations
|
||||
* Edit:: Editing source files
|
||||
* Search:: Searching source files
|
||||
* Source Path:: Specifying source directories
|
||||
@ -4917,7 +4903,8 @@ prefer to use Emacs facilities to view source; see @ref{Emacs, ,Using
|
||||
@kindex l @r{(@code{list})}
|
||||
To print lines from a source file, use the @code{list} command
|
||||
(abbreviated @code{l}). By default, ten lines are printed.
|
||||
There are several ways to specify what part of the file you want to print.
|
||||
There are several ways to specify what part of the file you want to
|
||||
print; see @ref{Specify Location}, for the full list.
|
||||
|
||||
Here are the forms of the @code{list} command most commonly used:
|
||||
|
||||
@ -4962,10 +4949,11 @@ than listing the same lines again. An exception is made for an
|
||||
argument of @samp{-}; that argument is preserved in repetition so that
|
||||
each repetition moves up in the source file.
|
||||
|
||||
@cindex linespec
|
||||
In general, the @code{list} command expects you to supply zero, one or two
|
||||
@dfn{linespecs}. Linespecs specify source lines; there are several ways
|
||||
of writing them, but the effect is always to specify some source line.
|
||||
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
|
||||
@ -4974,7 +4962,9 @@ Print lines centered around the line specified by @var{linespec}.
|
||||
|
||||
@item list @var{first},@var{last}
|
||||
Print lines from @var{first} to @var{last}. Both arguments are
|
||||
linespecs.
|
||||
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.
|
||||
|
||||
@item list ,@var{last}
|
||||
Print lines ending with @var{last}.
|
||||
@ -4992,42 +4982,86 @@ Print lines just before the lines last printed.
|
||||
As described in the preceding table.
|
||||
@end table
|
||||
|
||||
Here are the ways of specifying a single source line---all the
|
||||
kinds of linespec.
|
||||
@node Specify Location
|
||||
@section Specifying a Location
|
||||
@cindex specifying location
|
||||
@cindex linespec
|
||||
|
||||
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}.
|
||||
|
||||
Here are all the different ways of specifying a code location that
|
||||
@value{GDBN} understands:
|
||||
|
||||
@table @code
|
||||
@item @var{number}
|
||||
Specifies line @var{number} of the current source file.
|
||||
When a @code{list} command has two linespecs, this refers to
|
||||
the same source file as the first linespec.
|
||||
|
||||
@item +@var{offset}
|
||||
Specifies the line @var{offset} lines after the last line printed.
|
||||
When used as the second linespec in a @code{list} command that has
|
||||
two, this specifies the line @var{offset} lines down from the
|
||||
first linespec.
|
||||
@item @var{linenum}
|
||||
Specifies the line number @var{linenum} of the current source file.
|
||||
|
||||
@item -@var{offset}
|
||||
Specifies the line @var{offset} lines before the last line printed.
|
||||
@itemx +@var{offset}
|
||||
Specifies the line @var{offset} lines before or after the @dfn{current
|
||||
line}. For the @code{list} command, the current line is the last one
|
||||
printed; for the breakpoint commands, this is the line at which
|
||||
execution stopped in the currently selected @dfn{stack frame}
|
||||
(@pxref{Frames, ,Frames}, for a description of stack frames.) When
|
||||
used as the second of the two linespecs in a @code{list} command,
|
||||
this specifies the line @var{offset} lines up or down from the first
|
||||
linespec.
|
||||
|
||||
@item @var{filename}:@var{number}
|
||||
Specifies line @var{number} in the source file @var{filename}.
|
||||
@item @var{filename}:@var{linenum}
|
||||
Specifies the line @var{linenum} in the source file @var{filename}.
|
||||
|
||||
@item @var{function}
|
||||
Specifies the line that begins the body of the function @var{function}.
|
||||
For example: in C, this is the line with the open brace.
|
||||
For example, in C, this is the line with the open brace.
|
||||
|
||||
@item @var{filename}:@var{function}
|
||||
Specifies the line of the open-brace that begins the body of the
|
||||
function @var{function} in the file @var{filename}. You only need the
|
||||
file name with a function name to avoid ambiguity when there are
|
||||
identically named functions in different source files.
|
||||
Specifies the line that begins the body of the function @var{function}
|
||||
in the file @var{filename}. You only need the file name with a
|
||||
function name to avoid ambiguity when there are identically named
|
||||
functions in different source files.
|
||||
|
||||
@item *@var{address}
|
||||
Specifies the line containing the program address @var{address}.
|
||||
@var{address} may be any expression.
|
||||
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
|
||||
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. 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 of @var{address}:
|
||||
|
||||
@table @code
|
||||
@item @var{expression}
|
||||
Any expression valid in the current working language.
|
||||
|
||||
@item @var{funcaddr}
|
||||
An address of a function or procedure derived from its name. In C,
|
||||
C@t{++}, Java, Objective-C, Fortran, minimal, and assembly, this is
|
||||
simply the function's name @var{function} (and actually a special case
|
||||
of a valid expression). In Pascal and Modula-2, this is
|
||||
@code{&@var{function}}. In Ada, this is @code{@var{function}'Address}
|
||||
(although the Pascal form also works).
|
||||
|
||||
This form specifies the address of the function's first instruction,
|
||||
before the stack frame and arguments have been set up.
|
||||
|
||||
@item '@var{filename}'::@var{funcaddr}
|
||||
Like @var{funcaddr} above, but also specifies the name of the source
|
||||
file explicitly. This is useful if the name of the function does not
|
||||
specify the function unambiguously, e.g., if there are several
|
||||
functions with identical names in different source files.
|
||||
@end table
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
@node Edit
|
||||
@section Editing Source Files
|
||||
@cindex editing source files
|
||||
@ -5039,32 +5073,24 @@ The editing program of your choice
|
||||
is invoked with the current line set to
|
||||
the active line in the program.
|
||||
Alternatively, there are several ways to specify what part of the file you
|
||||
want to print if you want to see other parts of the program.
|
||||
|
||||
Here are the forms of the @code{edit} command most commonly used:
|
||||
want to print if you want to see other parts of the program:
|
||||
|
||||
@table @code
|
||||
@item edit
|
||||
Edit the current source file at the active line number in the program.
|
||||
@item edit @var{location}
|
||||
Edit the source file specified by @code{location}. Editing starts at
|
||||
that @var{location}, e.g., at the specified source line of the
|
||||
specified file. @xref{Specify Location}, for all the possible forms
|
||||
of the @var{location} argument; here are the forms of the @code{edit}
|
||||
command most commonly used:
|
||||
|
||||
@table @code
|
||||
@item edit @var{number}
|
||||
Edit the current source file with @var{number} as the active line number.
|
||||
|
||||
@item edit @var{function}
|
||||
Edit the file containing @var{function} at the beginning of its definition.
|
||||
@end table
|
||||
|
||||
@item edit @var{filename}:@var{number}
|
||||
Specifies line @var{number} in the source file @var{filename}.
|
||||
|
||||
@item edit @var{filename}:@var{function}
|
||||
Specifies the line that begins the body of the
|
||||
function @var{function} in the file @var{filename}. You only need the
|
||||
file name with a function name to avoid ambiguity when there are
|
||||
identically named functions in different source files.
|
||||
|
||||
@item edit *@var{address}
|
||||
Specifies the line containing the program address @var{address}.
|
||||
@var{address} may be any expression.
|
||||
@end table
|
||||
|
||||
@subsection Choosing your Editor
|
||||
@ -5335,8 +5361,7 @@ well as hex.
|
||||
@item info line @var{linespec}
|
||||
Print the starting and ending addresses of the compiled code for
|
||||
source line @var{linespec}. You can specify source lines in any of
|
||||
the ways understood by the @code{list} command (@pxref{List, ,Printing
|
||||
Source Lines}).
|
||||
the ways documented in @ref{Specify Location}.
|
||||
@end table
|
||||
|
||||
For example, we can use @code{info line} to discover the location of
|
||||
@ -10988,7 +11013,8 @@ lists all source files where a type is defined.
|
||||
List all the variables local to a particular scope. This command
|
||||
accepts a @var{location} argument---a function name, a source line, or
|
||||
an address preceded by a @samp{*}, and prints all the variables local
|
||||
to the scope defined by that location. For example:
|
||||
to the scope defined by that location. (@xref{Specify Location}, for
|
||||
details about supported forms of @var{location}.) For example:
|
||||
|
||||
@smallexample
|
||||
(@value{GDBP}) @b{info scope command_line_handler}
|
||||
@ -11358,12 +11384,13 @@ an address of your own choosing, with the following commands:
|
||||
@table @code
|
||||
@kindex jump
|
||||
@item jump @var{linespec}
|
||||
Resume execution at line @var{linespec}. Execution stops again
|
||||
immediately if there is a breakpoint there. @xref{List, ,Printing
|
||||
Source Lines}, for a description of the different forms of
|
||||
@var{linespec}. It is common practice to use the @code{tbreak} command
|
||||
in conjunction with @code{jump}. @xref{Set Breaks, ,Setting
|
||||
Breakpoints}.
|
||||
@itemx jump @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
|
||||
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
|
||||
@ -11374,9 +11401,6 @@ of local variables. For this reason, the @code{jump} command requests
|
||||
confirmation if the specified line is not in the function currently
|
||||
executing. However, even bizarre results are predictable if you are
|
||||
well acquainted with the machine-language code of your program.
|
||||
|
||||
@item jump *@var{address}
|
||||
Resume execution at the instruction at address @var{address}.
|
||||
@end table
|
||||
|
||||
@c Doesn't work on HP-UX; have to set $pcoqh and $pcoqt.
|
||||
|
Loading…
Reference in New Issue
Block a user