X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fdoc%2Fgdb.texinfo;h=035573ee54047eaa426c7b460d625adb2cb1a5ab;hb=ed3ef33944c39d9a3cea72b9a7cef3c20f0e3461;hp=5896e3a61e18e0200cc49613a8d05ad01dc21014;hpb=ca8941bbd088002cb8ff87abe16d02ecc8d58d1e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 5896e3a61e..035573ee54 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -1,5 +1,5 @@ \input texinfo @c -*-texinfo-*- -@c Copyright (C) 1988-2013 Free Software Foundation, Inc. +@c Copyright (C) 1988-2014 Free Software Foundation, Inc. @c @c %**start of header @c makeinfo ignores cmds prev to setfilename, so its arg cannot make use @@ -45,11 +45,12 @@ @dircategory Software development @direntry * Gdb: (gdb). The GNU debugger. +* gdbserver: (gdb) Server. The GNU debugging server. @end direntry @copying @c man begin COPYRIGHT -Copyright @copyright{} 1988-2013 Free Software Foundation, Inc. +Copyright @copyright{} 1988-2014 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -119,7 +120,7 @@ This is the @value{EDITION} Edition, for @value{GDBN} @end ifset Version @value{GDBVN}. -Copyright (C) 1988-2013 Free Software Foundation, Inc. +Copyright (C) 1988-2014 Free Software Foundation, Inc. This edition of the GDB manual is dedicated to the memory of Fred Fish. Fred was a long-standing contributor to GDB and to Free @@ -2088,6 +2089,7 @@ your program too late, as the program would have already completed the elaboration phase. Under these circumstances, insert breakpoints in your elaboration code before running your program. +@anchor{set exec-wrapper} @kindex set exec-wrapper @item set exec-wrapper @var{wrapper} @itemx show exec-wrapper @@ -2278,9 +2280,10 @@ your program. You can abbreviate @code{environment} as @code{env}. @kindex set environment @item set environment @var{varname} @r{[}=@var{value}@r{]} Set environment variable @var{varname} to @var{value}. The value -changes for your program only, not for @value{GDBN} itself. @var{value} may -be any string; the values of environment variables are just strings, and -any interpretation is supplied by your program itself. The @var{value} +changes for your program (and the shell @value{GDBN} uses to launch +it), not for @value{GDBN} itself. @var{value} may be any string; the +values of environment variables are just strings, and any +interpretation is supplied by your program itself. The @var{value} parameter is optional; if it is eliminated, the variable is set to a null value. @c "any string" here does not include leading, trailing @@ -2297,6 +2300,12 @@ tells the debugged program, when subsequently run, that its user is named @samp{foo}. (The spaces around @samp{=} are used for clarity here; they are not actually required.) +Note that on Unix systems, @value{GDBN} runs your program via a shell, +which also inherits the environment set with @code{set environment}. +If necessary, you can avoid that by using the @samp{env} program as a +wrapper instead of using @code{set environment}. @xref{set +exec-wrapper}, for an example doing just that. + @kindex unset environment @item unset environment @var{varname} Remove variable @var{varname} from the environment to be passed to your @@ -4107,6 +4116,9 @@ Stop when @var{event} occurs. @var{event} can be any of the following: @item throw @r{[}@var{regexp}@r{]} @itemx rethrow @r{[}@var{regexp}@r{]} @itemx catch @r{[}@var{regexp}@r{]} +@kindex catch throw +@kindex catch rethrow +@kindex catch catch @cindex stop on C@t{++} exceptions The throwing, re-throwing, or catching of a C@t{++} exception. @@ -4164,6 +4176,7 @@ You cannot install an exception handler interactively. @end itemize @item exception +@kindex catch exception @cindex Ada exception catching @cindex catch Ada exceptions An Ada exception being raised. If an exception name is specified @@ -4181,18 +4194,22 @@ the command to use to catch such exceptions is @kbd{catch exception Pck.Constraint_Error}. @item exception unhandled +@kindex catch exception unhandled An exception that was raised but is not handled by the program. @item assert +@kindex catch assert A failed Ada assertion. @item exec +@kindex catch exec @cindex break on fork/exec A call to @code{exec}. This is currently only available for HP-UX and @sc{gnu}/Linux. @item syscall @itemx syscall @r{[}@var{name} @r{|} @var{number}@r{]} @dots{} +@kindex catch syscall @cindex break on a system call. A call to or return from a system call, a.k.a.@: @dfn{syscall}. A syscall is a mechanism for application programs to request a service @@ -4323,20 +4340,25 @@ Catchpoint 1 (syscall(s) 252) Again, in this case @value{GDBN} would not be able to display syscall's names. @item fork +@kindex catch fork A call to @code{fork}. This is currently only available for HP-UX and @sc{gnu}/Linux. @item vfork +@kindex catch vfork A call to @code{vfork}. This is currently only available for HP-UX and @sc{gnu}/Linux. @item load @r{[}regexp@r{]} @itemx unload @r{[}regexp@r{]} +@kindex catch load +@kindex catch unload The loading or unloading of a shared library. If @var{regexp} is given, then the catchpoint will stop only if the regular expression matches one of the affected libraries. @item signal @r{[}@var{signal}@dots{} @r{|} @samp{all}@r{]} +@kindex catch signal The delivery of a signal. With no arguments, this catchpoint will catch any signal that is not @@ -4364,6 +4386,7 @@ commands. @end table @item tcatch @var{event} +@kindex tcatch Set a catchpoint that is enabled only for one stop. The catchpoint is automatically deleted after the first time the event is caught. @@ -6240,8 +6263,10 @@ replay implementation. This method allows replaying and reverse execution. @item btrace -Hardware-supported instruction recording. This method does not allow -replaying and reverse execution. +Hardware-supported instruction recording. This method does not record +data. Further, the data is collected in a ring buffer so old data will +be overwritten when the buffer is full. It allows limited replay and +reverse execution. This recording method may not be available on all processors. @end table @@ -6442,7 +6467,7 @@ Disassembles ten more instructions before the last disassembly. @item record instruction-history @var{begin} @var{end} Disassembles instructions beginning with instruction number @var{begin} until instruction number @var{end}. The instruction -number @var{end} is not included. +number @var{end} is included. @end table This command may not be available for all recording methods. @@ -6467,7 +6492,10 @@ line for each sequence of instructions that belong to the same function giving the name of that function, the source lines for this instruction sequence (if the @code{/l} modifier is specified), and the instructions numbers that form the sequence (if -the @code{/i} modifier is specified). +the @code{/i} modifier is specified). The function names are indented +to reflect the call stack depth if the @code{/c} modifier is +specified. The @code{/l}, @code{/i}, and @code{/c} modifiers can be +given together. @smallexample (@value{GDBP}) @b{list 1, 10} @@ -6481,10 +6509,10 @@ the @code{/i} modifier is specified). 8 foo (); 9 ... 10 @} -(@value{GDBP}) @b{record function-call-history /l} -1 foo.c:6-8 bar -2 foo.c:2-3 foo -3 foo.c:9-10 bar +(@value{GDBP}) @b{record function-call-history /ilc} +1 bar inst 1,4 at foo.c:6,8 +2 foo inst 5,10 at foo.c:2,3 +3 bar inst 11,13 at foo.c:9,10 @end smallexample By default, ten lines are printed. This can be changed using the @@ -6510,8 +6538,7 @@ Prints ten more functions before the last ten-line print. @item record function-call-history @var{begin} @var{end} Prints functions beginning with function number @var{begin} until -function number @var{end}. The function number @var{end} is not -included. +function number @var{end}. The function number @var{end} is included. @end table This command may not be available for all recording methods. @@ -15685,6 +15712,37 @@ recommended to leave this setting to @code{on} unless necessary. @end table +@cindex GNAT descriptive types +@cindex GNAT encoding +Internally, the debugger also relies on the compiler following a number +of conventions known as the @samp{GNAT Encoding}, all documented in +@file{gcc/ada/exp_dbug.ads} in the GCC sources. This encoding describes +how the debugging information should be generated for certain types. +In particular, this convention makes use of @dfn{descriptive types}, +which are artificial types generated purely to help the debugger. + +These encodings were defined at a time when the debugging information +format used was not powerful enough to describe some of the more complex +types available in Ada. Since DWARF allows us to express nearly all +Ada features, the long-term goal is to slowly replace these descriptive +types by their pure DWARF equivalent. To facilitate that transition, +a new maintenance option is available to force the debugger to ignore +those descriptive types. It allows the user to quickly evaluate how +well @value{GDBN} works without them. + +@table @code + +@kindex maint ada set ignore-descriptive-types +@item maintenance ada set ignore-descriptive-types [on|off] +Control whether the debugger should ignore descriptive types. +The default is not to ignore descriptives types (@code{off}). + +@kindex maint ada show ignore-descriptive-types +@item maintenance ada show ignore-descriptive-types +Show if descriptive types are ignored by @value{GDBN}. + +@end table + @node Unsupported Languages @section Unsupported Languages @@ -18480,6 +18538,7 @@ connections and even in the @kbd{target extended-remote} mode. The multiple instances of @code{gdbserver} running on the same host, since each instance closes its port after the first connection. +@anchor{Other Command-Line Arguments for gdbserver} @subsubsection Other Command-Line Arguments for @code{gdbserver} @cindex @option{--debug}, @code{gdbserver} option @@ -18490,6 +18549,23 @@ The @option{--remote-debug} option tells @code{gdbserver} to display remote protocol debug output. These options are intended for @code{gdbserver} development and for bug reports to the developers. +@cindex @option{--debug-format}, @code{gdbserver} option +The @option{--debug-format=option1[,option2,...]} option tells +@code{gdbserver} to include additional information in each output. +Possible options are: + +@table @code +@item none +Turn off all extra information in debugging output. +@item all +Turn on all extra information in debugging output. +@item timestamps +Include a timestamp in each line of debugging output. +@end table + +Options are processed in order. Thus, for example, if @option{none} +appears last then no additional information is added to debugging output. + @cindex @option{--wrapper}, @code{gdbserver} option The @option{--wrapper} option specifies a wrapper to launch programs for debugging. The option should be followed by the name of the @@ -18560,6 +18636,22 @@ Disable or enable general debugging messages. Disable or enable specific debugging messages associated with the remote protocol (@pxref{Remote Protocol}). +@item monitor set debug-format option1@r{[},option2,...@r{]} +Specify additional text to add to debugging messages. +Possible options are: + +@table @code +@item none +Turn off all extra information in debugging output. +@item all +Turn on all extra information in debugging output. +@item timestamps +Include a timestamp in each line of debugging output. +@end table + +Options are processed in order. Thus, for example, if @option{none} +appears last then no additional information is added to debugging output. + @item monitor set libthread-db-search-path [PATH] @cindex gdbserver, search path for @code{libthread_db} When this command is issued, @var{path} is a colon-separated list of @@ -21376,11 +21468,11 @@ be returned in a register. @kindex show struct-convention Show the current setting of the convention to return @code{struct}s from functions. +@end table -@cindex Intel(R) Memory Protection Extensions (MPX). @subsubsection Intel(R) @dfn{Memory Protection Extensions} (MPX). +@cindex Intel(R) Memory Protection Extensions (MPX). -@item bnd0raw..bnd3raw and bnd0@dots{}bnd3 registers display. Memory Protection Extension (MPX) adds the bound registers @samp{BND0} @footnote{The register named with capital letters represent the architecture registers.} through @samp{BND3}. Bound registers store a pair of 64-bit values @@ -21405,11 +21497,11 @@ bnd0raw and bnd registers are presented as follows: bnd0 = @{lbound = 0x32, ubound = 0x71@} : size 64 @end smallexample -This way the raw value can be accessed via bnd0raw@dots{}bnd3raw. Any change -on bnd0@dots{}bnd3 or bnd0raw@dots{}bnd3raw is reflect on its counterpart. When the -bnd0@dots{}bnd3 registers are displayed via Python, the display includes the memory size, -in bits, accessible to the pointer. -@end table +This way the raw value can be accessed via bnd0raw@dots{}bnd3raw. Any +change on bnd0@dots{}bnd3 or bnd0raw@dots{}bnd3raw is reflect on its +counterpart. When the bnd0@dots{}bnd3 registers are displayed via +Python, the display includes the memory size, in bits, accessible to +the pointer. @node Alpha @subsection Alpha @@ -22135,6 +22227,18 @@ without being explicitly told so by the user. We call this feature results or introduce security risks (e.g., if the file comes from untrusted sources). +@menu +* Init File in the Current Directory:: @samp{set/show/info auto-load local-gdbinit} +* libthread_db.so.1 file:: @samp{set/show/info auto-load libthread-db} + +* Auto-loading safe path:: @samp{set/show/info auto-load safe-path} +* Auto-loading verbose mode:: @samp{set/show debug auto-load} +@end menu + +There are various kinds of files @value{GDBN} can automatically load. +In addition to these files, @value{GDBN} supports auto-loading code written +in various extension languages. @xref{Auto-loading extensions}. + Note that loading of these associated files (including the local @file{.gdbinit} file) requires accordingly configured @code{auto-load safe-path} (@pxref{Auto-loading safe path}). @@ -22199,23 +22303,6 @@ Yes /home/user/gdb/gdb-gdb.py @end smallexample @end table -These are various kinds of files @value{GDBN} can automatically load: - -@itemize @bullet -@item -@xref{objfile-gdb.py file}, controlled by @ref{set auto-load python-scripts}. -@item -@xref{objfile-gdb.gdb file}, controlled by @ref{set auto-load gdb-scripts}. -@item -@xref{dotdebug_gdb_scripts section}, -controlled by @ref{set auto-load python-scripts}. -@item -@xref{Init File in the Current Directory}, -controlled by @ref{set auto-load local-gdbinit}. -@item -@xref{libthread_db.so.1 file}, controlled by @ref{set auto-load libthread-db}. -@end itemize - These are @value{GDBN} control commands for the auto-loading: @multitable @columnfractions .5 .5 @@ -22237,6 +22324,12 @@ These are @value{GDBN} control commands for the auto-loading: @tab Show setting of @value{GDBN} Python scripts. @item @xref{info auto-load python-scripts}. @tab Show state of @value{GDBN} Python scripts. +@item @xref{set auto-load guile-scripts}. +@tab Control for @value{GDBN} Guile scripts. +@item @xref{show auto-load guile-scripts}. +@tab Show setting of @value{GDBN} Guile scripts. +@item @xref{info auto-load guile-scripts}. +@tab Show state of @value{GDBN} Guile scripts. @item @xref{set auto-load scripts-directory}. @tab Control for @value{GDBN} auto-loaded scripts location. @item @xref{show auto-load scripts-directory}. @@ -22261,15 +22354,6 @@ These are @value{GDBN} control commands for the auto-loading: @tab Add directory trusted for automatic loading. @end multitable -@menu -* Init File in the Current Directory:: @samp{set/show/info auto-load local-gdbinit} -* libthread_db.so.1 file:: @samp{set/show/info auto-load libthread-db} -* objfile-gdb.gdb file:: @samp{set/show/info auto-load gdb-script} -* Auto-loading safe path:: @samp{set/show/info auto-load safe-path} -* Auto-loading verbose mode:: @samp{set/show debug auto-load} -@xref{Python Auto-loading}. -@end menu - @node Init File in the Current Directory @subsection Automatically loading init file in the current directory @cindex auto-loading init file in the current directory @@ -22339,43 +22423,6 @@ Print the list of all loaded inferior specific thread debugging libraries and for each such library print list of inferior @var{pid}s using it. @end table -@node objfile-gdb.gdb file -@subsection The @file{@var{objfile}-gdb.gdb} file -@cindex auto-loading @file{@var{objfile}-gdb.gdb} - -@value{GDBN} tries to load an @file{@var{objfile}-gdb.gdb} file containing -canned sequences of commands (@pxref{Sequences}), as long as @samp{set -auto-load gdb-scripts} is set to @samp{on}. - -Note that loading of this script file also requires accordingly configured -@code{auto-load safe-path} (@pxref{Auto-loading safe path}). - -For more background refer to the similar Python scripts auto-loading -description (@pxref{objfile-gdb.py file}). - -@table @code -@anchor{set auto-load gdb-scripts} -@kindex set auto-load gdb-scripts -@item set auto-load gdb-scripts [on|off] -Enable or disable the auto-loading of canned sequences of commands scripts. - -@anchor{show auto-load gdb-scripts} -@kindex show auto-load gdb-scripts -@item show auto-load gdb-scripts -Show whether auto-loading of canned sequences of commands scripts is enabled or -disabled. - -@anchor{info auto-load gdb-scripts} -@kindex info auto-load gdb-scripts -@cindex print list of auto-loaded canned sequences of commands scripts -@item info auto-load gdb-scripts [@var{regexp}] -Print the list of all canned sequences of commands scripts that @value{GDBN} -auto-loaded. -@end table - -If @var{regexp} is supplied only canned sequences of commands scripts with -matching names are printed. - @node Auto-loading safe path @subsection Security restriction for auto-loading @cindex auto-loading safe-path @@ -22900,14 +22947,24 @@ Displays whether the debugger is operating in interactive mode or not. @chapter Extending @value{GDBN} @cindex extending GDB -@value{GDBN} provides three mechanisms for extension. The first is based -on composition of @value{GDBN} commands, the second is based on the -Python scripting language, and the third is for defining new aliases of -existing commands. +@value{GDBN} provides several mechanisms for extension. +@value{GDBN} also provides the ability to automatically load +extensions when it reads a file for debugging. This allows the +user to automatically customize @value{GDBN} for the program +being debugged. + +@menu +* Sequences:: Canned Sequences of @value{GDBN} Commands +* Python:: Extending @value{GDBN} using Python +* Guile:: Extending @value{GDBN} using Guile +* Auto-loading extensions:: Automatically loading extensions +* Multiple Extension Languages:: Working with multiple extension languages +* Aliases:: Creating new spellings of existing commands +@end menu -To facilitate the use of the first two extensions, @value{GDBN} is capable +To facilitate the use of extension languages, @value{GDBN} is capable of evaluating the contents of a file. When doing so, @value{GDBN} -can recognize which scripting language is being used by looking at +can recognize which extension language is being used by looking at the filename extension. Files with an unrecognized filename extension are always treated as a @value{GDBN} Command Files. @xref{Command Files,, Command files}. @@ -22937,12 +22994,6 @@ Display the current value of the @code{script-extension} option. @end table -@menu -* Sequences:: Canned Sequences of Commands -* Python:: Scripting @value{GDBN} using Python -* Aliases:: Creating new spellings of existing commands -@end menu - @node Sequences @section Canned Sequences of Commands @@ -22956,6 +23007,7 @@ files. * Hooks:: Hooks for user-defined commands * Command Files:: How to write scripts of commands to be stored in a file * Output:: Commands for controlled output +* Auto-loading sequences:: Controlling auto-loaded command files @end menu @node Define @@ -23441,12 +23493,47 @@ the string @var{template} to a command line, and call it. @end table +@node Auto-loading sequences +@subsection Controlling auto-loading native @value{GDBN} scripts +@cindex native script auto-loading + +When a new object file is read (for example, due to the @code{file} +command, or because the inferior has loaded a shared library), +@value{GDBN} will look for the command file @file{@var{objfile}-gdb.gdb}. +@xref{Auto-loading extensions}. + +Auto-loading can be enabled or disabled, +and the list of auto-loaded scripts can be printed. + +@table @code +@anchor{set auto-load gdb-scripts} +@kindex set auto-load gdb-scripts +@item set auto-load gdb-scripts [on|off] +Enable or disable the auto-loading of canned sequences of commands scripts. + +@anchor{show auto-load gdb-scripts} +@kindex show auto-load gdb-scripts +@item show auto-load gdb-scripts +Show whether auto-loading of canned sequences of commands scripts is enabled or +disabled. + +@anchor{info auto-load gdb-scripts} +@kindex info auto-load gdb-scripts +@cindex print list of auto-loaded canned sequences of commands scripts +@item info auto-load gdb-scripts [@var{regexp}] +Print the list of all canned sequences of commands scripts that @value{GDBN} +auto-loaded. +@end table + +If @var{regexp} is supplied only canned sequences of commands scripts with +matching names are printed. + @node Python -@section Scripting @value{GDBN} using Python +@section Extending @value{GDBN} using Python @cindex python scripting @cindex scripting with python -You can script @value{GDBN} using the @uref{http://www.python.org/, +You can extend @value{GDBN} using the @uref{http://www.python.org/, Python programming language}. This feature is available only if @value{GDBN} was configured using @option{--with-python}. @@ -23970,7 +24057,17 @@ can access its @code{foo} element with: bar = some_val['foo'] @end smallexample -Again, @code{bar} will also be a @code{gdb.Value} object. +@cindex getting structure elements using gdb.Field objects as subscripts +Again, @code{bar} will also be a @code{gdb.Value} object. Structure +elements can also be accessed by using @code{gdb.Field} objects as +subscripts (@pxref{Types In Python}, for more information on +@code{gdb.Field} objects). For example, if @code{foo_field} is a +@code{gdb.Field} object corresponding to element @code{foo} of the above +structure, then @code{bar} can also be accessed as follows: + +@smallexample +bar = some_val[foo_field] +@end smallexample A @code{gdb.Value} that represents a function can be executed via inferior function call. Any arguments provided to the call must match @@ -24299,6 +24396,11 @@ The type code for this type. The type code will be one of the @code{TYPE_CODE_} constants defined below. @end defvar +@defvar Type.name +The name of this type. If this type has no name, then @code{None} +is returned. +@end defvar + @defvar Type.sizeof The size of this type, in target @code{char} units. Usually, a target's @code{char} type will be an 8-bit byte. However, on some @@ -24325,10 +24427,13 @@ into one of these categories, an empty sequence will be returned. Each field is a @code{gdb.Field} object, with some pre-defined attributes: @table @code @item bitpos -This attribute is not available for @code{static} fields (as in -C@t{++} or Java). For non-@code{static} fields, the value is the bit -position of the field. For @code{enum} fields, the value is the -enumeration member's integer representation. +This attribute is not available for @code{enum} or @code{static} +(as in C@t{++} or Java) fields. The value is the position, counting +in bits, from the start of the containing type. + +@item enumval +This attribute is only available for @code{enum} fields, and its value +is the enumeration member's integer representation. @item name The name of the field, or @code{None} for anonymous fields. @@ -24352,6 +24457,10 @@ this will be zero; in this case the field's size is given by its type. @item type The type of the field. This is usually an instance of @code{Type}, but it can be @code{None} in some situations. + +@item parent_type +The type which contains this field. This is an instance of +@code{gdb.Type}. @end table @end defun @@ -27598,9 +27707,8 @@ instruction in bytes. When a new object file is read (for example, due to the @code{file} command, or because the inferior has loaded a shared library), @value{GDBN} will look for Python support scripts in several ways: -@file{@var{objfile}-gdb.py} (@pxref{objfile-gdb.py file}) -and @code{.debug_gdb_scripts} section -(@pxref{dotdebug_gdb_scripts section}). +@file{@var{objfile}-gdb.py} and @code{.debug_gdb_scripts} section. +@xref{Auto-loading extensions}. The auto-loading feature is useful for supplying application-specific debugging commands and scripts. @@ -27650,172 +27758,6 @@ When reading an auto-loaded file, @value{GDBN} sets the function (@pxref{Objfiles In Python}). This can be useful for registering objfile-specific pretty-printers and frame-filters. -@menu -* objfile-gdb.py file:: The @file{@var{objfile}-gdb.py} file -* dotdebug_gdb_scripts section:: The @code{.debug_gdb_scripts} section -* Which flavor to choose?:: -@end menu - -@node objfile-gdb.py file -@subsubsection The @file{@var{objfile}-gdb.py} file -@cindex @file{@var{objfile}-gdb.py} - -When a new object file is read, @value{GDBN} looks for -a file named @file{@var{objfile}-gdb.py} (we call it @var{script-name} below), -where @var{objfile} is the object file's real name, formed by ensuring -that the file name is absolute, following all symlinks, and resolving -@code{.} and @code{..} components. If this file exists and is -readable, @value{GDBN} will evaluate it as a Python script. - -If this file does not exist, then @value{GDBN} will look for -@var{script-name} file in all of the directories as specified below. - -Note that loading of this script file also requires accordingly configured -@code{auto-load safe-path} (@pxref{Auto-loading safe path}). - -For object files using @file{.exe} suffix @value{GDBN} tries to load first the -scripts normally according to its @file{.exe} filename. But if no scripts are -found @value{GDBN} also tries script filenames matching the object file without -its @file{.exe} suffix. This @file{.exe} stripping is case insensitive and it -is attempted on any platform. This makes the script filenames compatible -between Unix and MS-Windows hosts. - -@table @code -@anchor{set auto-load scripts-directory} -@kindex set auto-load scripts-directory -@item set auto-load scripts-directory @r{[}@var{directories}@r{]} -Control @value{GDBN} auto-loaded scripts location. Multiple directory entries -may be delimited by the host platform path separator in use -(@samp{:} on Unix, @samp{;} on MS-Windows and MS-DOS). - -Each entry here needs to be covered also by the security setting -@code{set auto-load safe-path} (@pxref{set auto-load safe-path}). - -@anchor{with-auto-load-dir} -This variable defaults to @file{$debugdir:$datadir/auto-load}. The default -@code{set auto-load safe-path} value can be also overriden by @value{GDBN} -configuration option @option{--with-auto-load-dir}. - -Any reference to @file{$debugdir} will get replaced by -@var{debug-file-directory} value (@pxref{Separate Debug Files}) and any -reference to @file{$datadir} will get replaced by @var{data-directory} which is -determined at @value{GDBN} startup (@pxref{Data Files}). @file{$debugdir} and -@file{$datadir} must be placed as a directory component --- either alone or -delimited by @file{/} or @file{\} directory separators, depending on the host -platform. - -The list of directories uses path separator (@samp{:} on GNU and Unix -systems, @samp{;} on MS-Windows and MS-DOS) to separate directories, similarly -to the @env{PATH} environment variable. - -@anchor{show auto-load scripts-directory} -@kindex show auto-load scripts-directory -@item show auto-load scripts-directory -Show @value{GDBN} auto-loaded scripts location. -@end table - -@value{GDBN} does not track which files it has already auto-loaded this way. -@value{GDBN} will load the associated script every time the corresponding -@var{objfile} is opened. -So your @file{-gdb.py} file should be careful to avoid errors if it -is evaluated more than once. - -@node dotdebug_gdb_scripts section -@subsubsection The @code{.debug_gdb_scripts} section -@cindex @code{.debug_gdb_scripts} section - -For systems using file formats like ELF and COFF, -when @value{GDBN} loads a new object file -it will look for a special section named @samp{.debug_gdb_scripts}. -If this section exists, its contents is a list of names of scripts to load. - -@value{GDBN} will look for each specified script file first in the -current directory and then along the source search path -(@pxref{Source Path, ,Specifying Source Directories}), -except that @file{$cdir} is not searched, since the compilation -directory is not relevant to scripts. - -Entries can be placed in section @code{.debug_gdb_scripts} with, -for example, this GCC macro: - -@example -/* Note: The "MS" section flags are to remove duplicates. */ -#define DEFINE_GDB_SCRIPT(script_name) \ - asm("\ -.pushsection \".debug_gdb_scripts\", \"MS\",@@progbits,1\n\ -.byte 1\n\ -.asciz \"" script_name "\"\n\ -.popsection \n\ -"); -@end example - -@noindent -Then one can reference the macro in a header or source file like this: - -@example -DEFINE_GDB_SCRIPT ("my-app-scripts.py") -@end example - -The script name may include directories if desired. - -Note that loading of this script file also requires accordingly configured -@code{auto-load safe-path} (@pxref{Auto-loading safe path}). - -If the macro is put in a header, any application or library -using this header will get a reference to the specified script. - -@node Which flavor to choose? -@subsubsection Which flavor to choose? - -Given the multiple ways of auto-loading Python scripts, it might not always -be clear which one to choose. This section provides some guidance. - -Benefits of the @file{-gdb.py} way: - -@itemize @bullet -@item -Can be used with file formats that don't support multiple sections. - -@item -Ease of finding scripts for public libraries. - -Scripts specified in the @code{.debug_gdb_scripts} section are searched for -in the source search path. -For publicly installed libraries, e.g., @file{libstdc++}, there typically -isn't a source directory in which to find the script. - -@item -Doesn't require source code additions. -@end itemize - -Benefits of the @code{.debug_gdb_scripts} way: - -@itemize @bullet -@item -Works with static linking. - -Scripts for libraries done the @file{-gdb.py} way require an objfile to -trigger their loading. When an application is statically linked the only -objfile available is the executable, and it is cumbersome to attach all the -scripts from all the input libraries to the executable's @file{-gdb.py} script. - -@item -Works with classes that are entirely inlined. - -Some classes can be entirely inlined, and thus there may not be an associated -shared library to attach a @file{-gdb.py} script to. - -@item -Scripts needn't be copied out of the source tree. - -In some circumstances, apps can be built out of large collections of internal -libraries, and the build infrastructure necessary to install the -@file{-gdb.py} scripts in a place where @value{GDBN} can find them is -cumbersome. It may be easier to specify the scripts in the -@code{.debug_gdb_scripts} section as relative paths, and add a path to the -top of the source tree to the source search path. -@end itemize - @node Python modules @subsection Python modules @cindex python modules @@ -28019,6 +27961,241 @@ substitute_prompt (``frame: \f, @end smallexample @end table +@c Guile docs live in a separate file. +@include guile.texi + +@node Auto-loading extensions +@section Auto-loading extensions +@cindex auto-loading extensions + +@value{GDBN} provides two mechanisms for automatically loading extensions +when a new object file is read (for example, due to the @code{file} +command, or because the inferior has loaded a shared library): +@file{@var{objfile}-gdb.@var{ext}} and the @code{.debug_gdb_scripts} +section of modern file formats like ELF. + +@menu +* objfile-gdb.ext file: objfile-gdbdotext file. The @file{@var{objfile}-gdb.@var{ext}} file +* .debug_gdb_scripts section: dotdebug_gdb_scripts section. The @code{.debug_gdb_scripts} section +* Which flavor to choose?:: +@end menu + +The auto-loading feature is useful for supplying application-specific +debugging commands and features. + +Auto-loading can be enabled or disabled, +and the list of auto-loaded scripts can be printed. +See the @samp{auto-loading} section of each extension language +for more information. +For @value{GDBN} command files see @ref{Auto-loading sequences}. +For Python files see @ref{Python Auto-loading}. + +Note that loading of this script file also requires accordingly configured +@code{auto-load safe-path} (@pxref{Auto-loading safe path}). + +@node objfile-gdbdotext file +@subsection The @file{@var{objfile}-gdb.@var{ext}} file +@cindex @file{@var{objfile}-gdb.gdb} +@cindex @file{@var{objfile}-gdb.py} +@cindex @file{@var{objfile}-gdb.scm} + +When a new object file is read, @value{GDBN} looks for a file named +@file{@var{objfile}-gdb.@var{ext}} (we call it @var{script-name} below), +where @var{objfile} is the object file's name and +where @var{ext} is the file extension for the extension language: + +@table @code +@item @file{@var{objfile}-gdb.gdb} +GDB's own command language +@item @file{@var{objfile}-gdb.py} +Python +@item @file{@var{objfile}-gdb.scm} +Guile +@end table + +@var{script-name} is formed by ensuring that the file name of @var{objfile} +is absolute, following all symlinks, and resolving @code{.} and @code{..} +components, and appending the @file{-gdb.@var{ext}} suffix. +If this file exists and is readable, @value{GDBN} will evaluate it as a +script in the specified extension language. + +If this file does not exist, then @value{GDBN} will look for +@var{script-name} file in all of the directories as specified below. + +Note that loading of these files requires an accordingly configured +@code{auto-load safe-path} (@pxref{Auto-loading safe path}). + +For object files using @file{.exe} suffix @value{GDBN} tries to load first the +scripts normally according to its @file{.exe} filename. But if no scripts are +found @value{GDBN} also tries script filenames matching the object file without +its @file{.exe} suffix. This @file{.exe} stripping is case insensitive and it +is attempted on any platform. This makes the script filenames compatible +between Unix and MS-Windows hosts. + +@table @code +@anchor{set auto-load scripts-directory} +@kindex set auto-load scripts-directory +@item set auto-load scripts-directory @r{[}@var{directories}@r{]} +Control @value{GDBN} auto-loaded scripts location. Multiple directory entries +may be delimited by the host platform path separator in use +(@samp{:} on Unix, @samp{;} on MS-Windows and MS-DOS). + +Each entry here needs to be covered also by the security setting +@code{set auto-load safe-path} (@pxref{set auto-load safe-path}). + +@anchor{with-auto-load-dir} +This variable defaults to @file{$debugdir:$datadir/auto-load}. The default +@code{set auto-load safe-path} value can be also overriden by @value{GDBN} +configuration option @option{--with-auto-load-dir}. + +Any reference to @file{$debugdir} will get replaced by +@var{debug-file-directory} value (@pxref{Separate Debug Files}) and any +reference to @file{$datadir} will get replaced by @var{data-directory} which is +determined at @value{GDBN} startup (@pxref{Data Files}). @file{$debugdir} and +@file{$datadir} must be placed as a directory component --- either alone or +delimited by @file{/} or @file{\} directory separators, depending on the host +platform. + +The list of directories uses path separator (@samp{:} on GNU and Unix +systems, @samp{;} on MS-Windows and MS-DOS) to separate directories, similarly +to the @env{PATH} environment variable. + +@anchor{show auto-load scripts-directory} +@kindex show auto-load scripts-directory +@item show auto-load scripts-directory +Show @value{GDBN} auto-loaded scripts location. +@end table + +@value{GDBN} does not track which files it has already auto-loaded this way. +@value{GDBN} will load the associated script every time the corresponding +@var{objfile} is opened. +So your @file{-gdb.@var{ext}} file should be careful to avoid errors if it +is evaluated more than once. + +@node dotdebug_gdb_scripts section +@subsection The @code{.debug_gdb_scripts} section +@cindex @code{.debug_gdb_scripts} section + +For systems using file formats like ELF and COFF, +when @value{GDBN} loads a new object file +it will look for a special section named @code{.debug_gdb_scripts}. +If this section exists, its contents is a list of NUL-terminated names +of scripts to load. Each entry begins with a non-NULL prefix byte that +specifies the kind of entry, typically the extension language. + +@value{GDBN} will look for each specified script file first in the +current directory and then along the source search path +(@pxref{Source Path, ,Specifying Source Directories}), +except that @file{$cdir} is not searched, since the compilation +directory is not relevant to scripts. + +Entries can be placed in section @code{.debug_gdb_scripts} with, +for example, this GCC macro for Python scripts. + +@example +/* Note: The "MS" section flags are to remove duplicates. */ +#define DEFINE_GDB_PY_SCRIPT(script_name) \ + asm("\ +.pushsection \".debug_gdb_scripts\", \"MS\",@@progbits,1\n\ +.byte 1 /* Python */\n\ +.asciz \"" script_name "\"\n\ +.popsection \n\ +"); +@end example + +@noindent +For Guile scripts, replace @code{.byte 1} with @code{.byte 3}. +Then one can reference the macro in a header or source file like this: + +@example +DEFINE_GDB_PY_SCRIPT ("my-app-scripts.py") +@end example + +The script name may include directories if desired. + +Note that loading of this script file also requires accordingly configured +@code{auto-load safe-path} (@pxref{Auto-loading safe path}). + +If the macro invocation is put in a header, any application or library +using this header will get a reference to the specified script, +and with the use of @code{"MS"} attributes on the section, the linker +will remove duplicates. + +@node Which flavor to choose? +@subsection Which flavor to choose? + +Given the multiple ways of auto-loading extensions, it might not always +be clear which one to choose. This section provides some guidance. + +@noindent +Benefits of the @file{-gdb.@var{ext}} way: + +@itemize @bullet +@item +Can be used with file formats that don't support multiple sections. + +@item +Ease of finding scripts for public libraries. + +Scripts specified in the @code{.debug_gdb_scripts} section are searched for +in the source search path. +For publicly installed libraries, e.g., @file{libstdc++}, there typically +isn't a source directory in which to find the script. + +@item +Doesn't require source code additions. +@end itemize + +@noindent +Benefits of the @code{.debug_gdb_scripts} way: + +@itemize @bullet +@item +Works with static linking. + +Scripts for libraries done the @file{-gdb.@var{ext}} way require an objfile to +trigger their loading. When an application is statically linked the only +objfile available is the executable, and it is cumbersome to attach all the +scripts from all the input libraries to the executable's +@file{-gdb.@var{ext}} script. + +@item +Works with classes that are entirely inlined. + +Some classes can be entirely inlined, and thus there may not be an associated +shared library to attach a @file{-gdb.@var{ext}} script to. + +@item +Scripts needn't be copied out of the source tree. + +In some circumstances, apps can be built out of large collections of internal +libraries, and the build infrastructure necessary to install the +@file{-gdb.@var{ext}} scripts in a place where @value{GDBN} can find them is +cumbersome. It may be easier to specify the scripts in the +@code{.debug_gdb_scripts} section as relative paths, and add a path to the +top of the source tree to the source search path. +@end itemize + +@node Multiple Extension Languages +@section Multiple Extension Languages + +The Guile and Python extension languages do not share any state, +and generally do not interfere with each other. +There are some things to be aware of, however. + +@subsection Python comes first + +Python was @value{GDBN}'s first extension language, and to avoid breaking +existing behaviour Python comes first. This is generally solved by the +``first one wins'' principle. @value{GDBN} maintains a list of enabled +extension languages, and when it makes a call to an extension language, +(say to pretty-print a value), it tries each in turn until an extension +language indicates it has performed the request (e.g., has returned the +pretty-printed form of a value). +This extends to errors while performing such requests: If an error happens +while, for example, trying to pretty-print an object then the error is +reported and any following extension languages are not tried. + @node Aliases @section Creating new spellings of existing commands @cindex aliases for commands @@ -28816,6 +28993,7 @@ may repeat one or more times. * GDB/MI Target Manipulation:: * GDB/MI File Transfer Commands:: * GDB/MI Ada Exceptions Commands:: +* GDB/MI Support Commands:: * GDB/MI Miscellaneous Commands:: @end menu @@ -29137,16 +29315,16 @@ corresponding output for that command will also be prefixed by that same @code{@var{exec-async-output} | @var{status-async-output} | @var{notify-async-output}} @item @var{exec-async-output} @expansion{} -@code{[ @var{token} ] "*" @var{async-output}} +@code{[ @var{token} ] "*" @var{async-output nl}} @item @var{status-async-output} @expansion{} -@code{[ @var{token} ] "+" @var{async-output}} +@code{[ @var{token} ] "+" @var{async-output nl}} @item @var{notify-async-output} @expansion{} -@code{[ @var{token} ] "=" @var{async-output}} +@code{[ @var{token} ] "=" @var{async-output nl}} @item @var{async-output} @expansion{} -@code{@var{async-class} ( "," @var{result} )* @var{nl}} +@code{@var{async-class} ( "," @var{result} )*} @item @var{result-class} @expansion{} @code{"done" | "running" | "connected" | "error" | "exit"} @@ -29178,13 +29356,13 @@ depending on the needs---this is still in development). @code{@var{console-stream-output} | @var{target-stream-output} | @var{log-stream-output}} @item @var{console-stream-output} @expansion{} -@code{"~" @var{c-string}} +@code{"~" @var{c-string nl}} @item @var{target-stream-output} @expansion{} -@code{"@@" @var{c-string}} +@code{"@@" @var{c-string nl}} @item @var{log-stream-output} @expansion{} -@code{"&" @var{c-string}} +@code{"&" @var{c-string nl}} @item @var{nl} @expansion{} @code{CR | CR-LF} @@ -32974,7 +33152,7 @@ select a visualizer by following the built-in process a varobj is created, and so ordinarily is not needed. This feature is only available if Python support is enabled. The MI -command @code{-list-features} (@pxref{GDB/MI Miscellaneous Commands}) +command @code{-list-features} (@pxref{GDB/MI Support Commands}) can be used to check this. @subsubheading Example @@ -34999,6 +35177,158 @@ raises an exception are described at @ref{Ada Exception GDB/MI Catchpoint Commands}. +@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@node GDB/MI Support Commands +@section @sc{gdb/mi} Support Commands + +Since new commands and features get regularly added to @sc{gdb/mi}, +some commands are available to help front-ends query the debugger +about support for these capabilities. Similarly, it is also possible +to query @value{GDBN} about target support of certain features. + +@subheading The @code{-info-gdb-mi-command} Command +@cindex @code{-info-gdb-mi-command} +@findex -info-gdb-mi-command + +@subsubheading Synopsis + +@smallexample + -info-gdb-mi-command @var{cmd_name} +@end smallexample + +Query support for the @sc{gdb/mi} command named @var{cmd_name}. + +Note that the dash (@code{-}) starting all @sc{gdb/mi} commands +is technically not part of the command name (@pxref{GDB/MI Input +Syntax}), and thus should be omitted in @var{cmd_name}. However, +for ease of use, this command also accepts the form with the leading +dash. + +@subsubheading @value{GDBN} Command + +There is no corresponding @value{GDBN} command. + +@subsubheading Result + +The result is a tuple. There is currently only one field: + +@table @samp +@item exists +This field is equal to @code{"true"} if the @sc{gdb/mi} command exists, +@code{"false"} otherwise. + +@end table + +@subsubheading Example + +Here is an example where the @sc{gdb/mi} command does not exist: + +@smallexample +-info-gdb-mi-command unsupported-command +^done,command=@{exists="false"@} +@end smallexample + +@noindent +And here is an example where the @sc{gdb/mi} command is known +to the debugger: + +@smallexample +-info-gdb-mi-command symbol-list-lines +^done,command=@{exists="true"@} +@end smallexample + +@subheading The @code{-list-features} Command +@findex -list-features +@cindex supported @sc{gdb/mi} features, list + +Returns a list of particular features of the MI protocol that +this version of gdb implements. A feature can be a command, +or a new field in an output of some command, or even an +important bugfix. While a frontend can sometimes detect presence +of a feature at runtime, it is easier to perform detection at debugger +startup. + +The command returns a list of strings, with each string naming an +available feature. Each returned string is just a name, it does not +have any internal structure. The list of possible feature names +is given below. + +Example output: + +@smallexample +(gdb) -list-features +^done,result=["feature1","feature2"] +@end smallexample + +The current list of features is: + +@ftable @samp +@item frozen-varobjs +Indicates support for the @code{-var-set-frozen} command, as well +as possible presense of the @code{frozen} field in the output +of @code{-varobj-create}. +@item pending-breakpoints +Indicates support for the @option{-f} option to the @code{-break-insert} +command. +@item python +Indicates Python scripting support, Python-based +pretty-printing commands, and possible presence of the +@samp{display_hint} field in the output of @code{-var-list-children} +@item thread-info +Indicates support for the @code{-thread-info} command. +@item data-read-memory-bytes +Indicates support for the @code{-data-read-memory-bytes} and the +@code{-data-write-memory-bytes} commands. +@item breakpoint-notifications +Indicates that changes to breakpoints and breakpoints created via the +CLI will be announced via async records. +@item ada-task-info +Indicates support for the @code{-ada-task-info} command. +@item language-option +Indicates that all @sc{gdb/mi} commands accept the @option{--language} +option (@pxref{Context management}). +@item info-gdb-mi-command +Indicates support for the @code{-info-gdb-mi-command} command. +@item undefined-command-error-code +Indicates support for the "undefined-command" error code in error result +records, produced when trying to execute an undefined @sc{gdb/mi} command +(@pxref{GDB/MI Result Records}). +@item exec-run-start-option +Indicates that the @code{-exec-run} command supports the @option{--start} +option (@pxref{GDB/MI Program Execution}). +@end ftable + +@subheading The @code{-list-target-features} Command +@findex -list-target-features + +Returns a list of particular features that are supported by the +target. Those features affect the permitted MI commands, but +unlike the features reported by the @code{-list-features} command, the +features depend on which target GDB is using at the moment. Whenever +a target can change, due to commands such as @code{-target-select}, +@code{-target-attach} or @code{-exec-run}, the list of target features +may change, and the frontend should obtain it again. +Example output: + +@smallexample +(gdb) -list-target-features +^done,result=["async"] +@end smallexample + +The current list of features is: + +@table @samp +@item async +Indicates that the target is capable of asynchronous command +execution, which means that @value{GDBN} will accept further commands +while the target is running. + +@item reverse +Indicates that the target is capable of reverse execution. +@xref{Reverse Execution}, for more information. + +@end table + @c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @node GDB/MI Miscellaneous Commands @section Miscellaneous @sc{gdb/mi} Commands @@ -35140,145 +35470,6 @@ default shows this information when you start an interactive session. (gdb) @end smallexample -@subheading The @code{-info-gdb-mi-command} Command -@cindex @code{-info-gdb-mi-command} -@findex -info-gdb-mi-command - -@subsubheading Synopsis - -@smallexample - -info-gdb-mi-command @var{cmd_name} -@end smallexample - -Query support for the @sc{gdb/mi} command named @var{cmd_name}. - -Note that the dash (@code{-}) starting all @sc{gdb/mi} commands -is technically not part of the command name (@pxref{GDB/MI Input -Syntax}), and thus should be omitted in @var{cmd_name}. However, -for ease of use, this command also accepts the form with the leading -dash. - -@subsubheading @value{GDBN} Command - -There is no corresponding @value{GDBN} command. - -@subsubheading Result - -The result is a tuple. There is currently only one field: - -@table @samp -@item exists -This field is equal to @code{"true"} if the @sc{gdb/mi} command exists, -@code{"false"} otherwise. - -@end table - -@subsubheading Example - -Here is an example where the @sc{gdb/mi} command does not exist: - -@smallexample --info-gdb-mi-command unsupported-command -^done,command=@{exists="false"@} -@end smallexample - -@noindent -And here is an example where the @sc{gdb/mi} command is known -to the debugger: - -@smallexample --info-gdb-mi-command symbol-list-lines -^done,command=@{exists="true"@} -@end smallexample - -@subheading The @code{-list-features} Command -@findex -list-features - -Returns a list of particular features of the MI protocol that -this version of gdb implements. A feature can be a command, -or a new field in an output of some command, or even an -important bugfix. While a frontend can sometimes detect presence -of a feature at runtime, it is easier to perform detection at debugger -startup. - -The command returns a list of strings, with each string naming an -available feature. Each returned string is just a name, it does not -have any internal structure. The list of possible feature names -is given below. - -Example output: - -@smallexample -(gdb) -list-features -^done,result=["feature1","feature2"] -@end smallexample - -The current list of features is: - -@table @samp -@item frozen-varobjs -Indicates support for the @code{-var-set-frozen} command, as well -as possible presense of the @code{frozen} field in the output -of @code{-varobj-create}. -@item pending-breakpoints -Indicates support for the @option{-f} option to the @code{-break-insert} -command. -@item python -Indicates Python scripting support, Python-based -pretty-printing commands, and possible presence of the -@samp{display_hint} field in the output of @code{-var-list-children} -@item thread-info -Indicates support for the @code{-thread-info} command. -@item data-read-memory-bytes -Indicates support for the @code{-data-read-memory-bytes} and the -@code{-data-write-memory-bytes} commands. -@item breakpoint-notifications -Indicates that changes to breakpoints and breakpoints created via the -CLI will be announced via async records. -@item ada-task-info -Indicates support for the @code{-ada-task-info} command. -@item language-option -Indicates that all @sc{gdb/mi} commands accept the @option{--language} -option (@pxref{Context management}). -@item info-gdb-mi-command -Indicates support for the @code{-info-gdb-mi-command} command. -@item undefined-command-error-code -Indicates support for the "undefined-command" error code in error result -records, produced when trying to execute an undefined @sc{gdb/mi} command -(@pxref{GDB/MI Result Records}). -@end table - -@subheading The @code{-list-target-features} Command -@findex -list-target-features - -Returns a list of particular features that are supported by the -target. Those features affect the permitted MI commands, but -unlike the features reported by the @code{-list-features} command, the -features depend on which target GDB is using at the moment. Whenever -a target can change, due to commands such as @code{-target-select}, -@code{-target-attach} or @code{-exec-run}, the list of target features -may change, and the frontend should obtain it again. -Example output: - -@smallexample -(gdb) -list-target-features -^done,result=["async"] -@end smallexample - -The current list of features is: - -@table @samp -@item async -Indicates that the target is capable of asynchronous command -execution, which means that @value{GDBN} will accept further commands -while the target is running. - -@item reverse -Indicates that the target is capable of reverse execution. -@xref{Reverse Execution}, for more information. - -@end table - @subheading The @code{-list-thread-groups} Command @findex -list-thread-groups @@ -39888,6 +40079,14 @@ Returns all available branch trace. @item new Returns all available branch trace if the branch trace changed since the last read request. + +@item delta +Returns the new branch trace since the last read request. Adds a new +block to the end of the trace that begins at zero and ends at the source +location of the first branch in the trace buffer. This extra block is +used to stitch traces together. + +If the trace buffer overflowed, returns an error indicating the overflow. @end table This packet is not probed by default; the remote stub must request it @@ -44242,6 +44441,11 @@ Instruct @code{gdbserver} to display remote protocol debug output. This option is intended for @code{gdbserver} development and for bug reports to the developers. +@item --debug-format=option1@r{[},option2,...@r{]} +Instruct @code{gdbserver} to include extra information in each line +of debugging output. +@xref{Other Command-Line Arguments for gdbserver}. + @item --wrapper Specify a wrapper to launch programs for debugging. The option should be followed by the name of the