diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-04-10 10:34:51 +0200 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2015-04-10 10:34:51 +0200 |
commit | e7a8570f75694284ea5bc909f095004f4ef938c6 (patch) | |
tree | c049f053c37e30d045c38f11da06b8c819f72538 /gdb/doc | |
parent | 080bb7bbe9d06424be5a989ae87160d655d22e2e (diff) | |
download | gdb-e7a8570f75694284ea5bc909f095004f4ef938c6.zip gdb-e7a8570f75694284ea5bc909f095004f4ef938c6.tar.gz gdb-e7a8570f75694284ea5bc909f095004f4ef938c6.tar.bz2 |
doc patch: compile: missing bits
gdb/doc/ChangeLog
2015-04-10 Jan Kratochvil <jan.kratochvil@redhat.com>
Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Compiling and Injecting Code): Describe set debug
compile, show debug compile. New subsection Compilation options for
the compile command. New subsection Compiler search for the compile
command.
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 78 |
2 files changed, 86 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 5ad5e3a..aed1203 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,11 @@ +2015-04-10 Jan Kratochvil <jan.kratochvil@redhat.com> + Eli Zaretskii <eliz@gnu.org> + + * gdb.texinfo (Compiling and Injecting Code): Describe set debug + compile, show debug compile. New subsection Compilation options for + the compile command. New subsection Compiler search for the compile + command. + 2015-04-09 Andy Wingo <wingo@igalia.com> * guile.texi (Frames In Guile): Describe frame-read-register. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index d794893..419439a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -17223,6 +17223,66 @@ compile file /home/user/example.c @end smallexample @end table +@noindent +The process of compiling and injecting the code can be inspected using: + +@table @code +@anchor{set debug compile} +@item set debug compile +@cindex compile command debugging info +Turns on or off display of @value{GDBN} process of compiling and +injecting the code. The default is off. + +@item show debug compile +Displays the current state of displaying @value{GDBN} process of +compiling and injecting the code. +@end table + +@subsection Compilation options for the @code{compile} command + +@value{GDBN} needs to specify the right compilation options for the code +to be injected, in part to make its ABI compatible with the inferior +and in part to make the injected code compatible with @value{GDBN}'s +injecting process. + +@noindent +The options used, in increasing precedence: + +@table @asis +@item target architecture and OS options (@code{gdbarch}) +These options depend on target processor type and target operating +system, usually they specify at least 32-bit (@code{-m32}) or 64-bit +(@code{-m64}) compilation option. + +@item compilation options recorded in the target +@value{NGCC} (since version 4.7) stores the options used for compilation +into @code{DW_AT_producer} part of DWARF debugging information according +to the @value{NGCC} option @code{-grecord-gcc-switches}. One has to +explicitly specify @code{-g} during inferior compilation otherwise +@value{NGCC} produces no DWARF. This feature is only relevant for +platforms where @code{-g} produces DWARF by default, otherwise one may +try to enforce DWARF by using @code{-gdwarf-4}. + +@item compilation options set by @code{set compile-args} +@end table + +@noindent +You can override compilation options using the following command: + +@table @code +@item set compile-args +@cindex compile command options override +Set compilation options used for compiling and injecting code with the +@code{compile} commands. These options override any conflicting ones +from the target architecture and/or options stored during inferior +compilation. + +@item show compile-args +Displays the current state of compilation options override. +This does not show all the options actually used during compilation, +use @ref{set debug compile} for that. +@end table + @subsection Caveats when using the @code{compile} command There are a few caveats to keep in mind when using the @code{compile} @@ -17380,6 +17440,24 @@ Access to those variables will generate a compiler error which @value{GDBN} will print to the console. @end table +@subsection Compiler search for the @code{compile} command + +@value{GDBN} needs to find @value{NGCC} for the inferior being debugged which +may not be obvious for remote targets of different architecture than where +@value{GDBN} is running. Environment variable @code{PATH} (@code{PATH} from +shell that executed @value{GDBN}, not the one set by @value{GDBN} +command @code{set environment}). @xref{Environment}. @code{PATH} on +@value{GDBN} host is searched for @value{NGCC} binary matching the +target architecture and operating system. + +Specifically @code{PATH} is searched for binaries matching regular expression +@code{@var{arch}(-[^-]*)?-@var{os}-gcc} according to the inferior target being +debugged. @var{arch} is processor name --- multiarch is supported, so for +example both @code{i386} and @code{x86_64} targets look for pattern +@code{(x86_64|i.86)} and both @code{s390} and @code{s390x} targets look +for pattern @code{s390x?}. @var{os} is currently supported only for +pattern @code{linux(-gnu)?}. + @node GDB Files @chapter @value{GDBN} Files |