diff options
author | Nick Clifton <nickc@redhat.com> | 2003-06-26 08:14:10 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-06-26 08:14:10 +0000 |
commit | ed1653a7a6e4a758fa05f05f7e5d5b3257b84a42 (patch) | |
tree | ba89a5e68f9e14de3f19a201a4cd1c4c3ec8ea46 /binutils/doc/binutils.texi | |
parent | 41108f153c5bbc26d9bd7dcd7aabfca43632ab47 (diff) | |
download | gdb-ed1653a7a6e4a758fa05f05f7e5d5b3257b84a42.zip gdb-ed1653a7a6e4a758fa05f05f7e5d5b3257b84a42.tar.gz gdb-ed1653a7a6e4a758fa05f05f7e5d5b3257b84a42.tar.bz2 |
Add --only-keep-debug switch
Diffstat (limited to 'binutils/doc/binutils.texi')
-rw-r--r-- | binutils/doc/binutils.texi | 86 |
1 files changed, 81 insertions, 5 deletions
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 90c871a..899ab53 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -934,7 +934,6 @@ objcopy [@option{-F} @var{bfdname}|@option{--target=}@var{bfdname}] [@option{-B} @var{bfdarch}|@option{--binary-architecture=}@var{bfdarch}] [@option{-S}|@option{--strip-all}] [@option{-g}|@option{--strip-debug}] - [@option{--add-gnu-debuglink=}@var{path-to-file}] [@option{-K} @var{symbolname}|@option{--keep-symbol=}@var{symbolname}] [@option{-N} @var{symbolname}|@option{--strip-symbol=}@var{symbolname}] [@option{-G} @var{symbolname}|@option{--keep-global-symbol=}@var{symbolname}] @@ -974,6 +973,8 @@ objcopy [@option{-F} @var{bfdname}|@option{--target=}@var{bfdname}] [@option{--prefix-symbols=}@var{string}] [@option{--prefix-sections=}@var{string}] [@option{--prefix-alloc-sections=}@var{string}] + [@option{--add-gnu-debuglink=}@var{path-to-file}] + [@option{--only-keep-debug}] [@option{-v}|@option{--verbose}] [@option{-V}|@option{--version}] [@option{--help}] [@option{--info}] @@ -1079,10 +1080,6 @@ Do not copy debugging symbols or sections from the source file. @item --strip-unneeded Strip all symbols that are not needed for relocation processing. -@item --add-gnu-debuglink=@var{path-to-file} -Creates a .gnu_debuglink section which contains a reference to @var{path-to-file} -and adds it to the output file. - @item -K @var{symbolname} @itemx --keep-symbol=@var{symbolname} Copy only symbol @var{symbolname} from the source file. This option may @@ -1353,6 +1350,47 @@ Prefix all section names in the output file with @var{string}. Prefix all the names of all allocated sections in the output file with @var{string}. +@item --add-gnu-debuglink=@var{path-to-file} +Creates a .gnu_debuglink section which contains a reference to @var{path-to-file} +and adds it to the output file. + +@item --only-keep-debug +Strip a file, removing any sections that would be stripped by +@option{--strip-debug} and leaving the debugging sections. + +The intention is that this option will be used in conjunction with +@option{--add-gnu-debuglink} to create a two part executable. One a +stripped binary which will occupy less space in RAM and in a +distribution and the second a debugging information file which is only +needed if debugging abilities are required. The suggested procedure +to create these files is as follows: + +@enumerate +@item Link the executable as normal. Assuming that is is called +@code{foo} then... +@item Run @code{objcopy --only-keep-debug foo foo.dbg} to +create a file containing the debugging info. +@item Run @code{objcopy --strip-debug foo} to create a +stripped executable. +@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} +to add a link to the debugging info into the stripped executable. +@end enumerate + +Note - the choice of @code{.dbg} as an extension for the debug info +file is arbitrary. Also the @code{--only-keep-debug} step is +optional. You could instead do this: + +@enumerate +@item Link the executable as normal. +@item Copy @code{foo} to @code{foo.full} +@item Run @code{objcopy --strip-debug foo} +@item Run @code{objcopy --add-gnu-debuglink=foo.full foo} +@end enumerate + +ie the file pointed to by the @option{--add-gnu-debuglink} can be the +full executable. It does not have to be a file created by the +@option{--only-keep-debug} switch. + @item -V @itemx --version Show the version number of @command{objcopy}. @@ -2073,6 +2111,7 @@ strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname}] [@option{-x}|@option{--discard-all}] [@option{-X} |@option{--discard-locals}] [@option{-R} @var{sectionname} |@option{--remove-section=}@var{sectionname}] [@option{-o} @var{file}] [@option{-p}|@option{--preserve-dates}] + [@option{--only-keep-debug}] [@option{-v} |@option{--verbose}] [@option{-V}|@option{--version}] [@option{--help}] [@option{--info}] @var{objfile}@dots{} @@ -2164,6 +2203,43 @@ Remove non-global symbols. Remove compiler-generated local symbols. (These usually start with @samp{L} or @samp{.}.) +@item --only-keep-debug +Strip a file, removing any sections that would be stripped by +@option{--strip-debug} and leaving the debugging sections. + +The intention is that this option will be used in conjunction with +@option{--add-gnu-debuglink} to create a two part executable. One a +stripped binary which will occupy less space in RAM and in a +distribution and the second a debugging information file which is only +needed if debugging abilities are required. The suggested procedure +to create these files is as follows: + +@enumerate +@item Link the executable as normal. Assuming that is is called +@code{foo} then... +@item Run @code{objcopy --only-keep-debug foo foo.dbg} to +create a file containing the debugging info. +@item Run @code{objcopy --strip-debug foo} to create a +stripped executable. +@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} +to add a link to the debugging info into the stripped executable. +@end enumerate + +Note - the choice of @code{.dbg} as an extension for the debug info +file is arbitrary. Also the @code{--only-keep-debug} step is +optional. You could instead do this: + +@enumerate +@item Link the executable as normal. +@item Copy @code{foo} to @code{foo.full} +@item Run @code{strip --strip-debug foo} +@item Run @code{objcopy --add-gnu-debuglink=foo.full foo} +@end enumerate + +ie the file pointed to by the @option{--add-gnu-debuglink} can be the +full executable. It does not have to be a file created by the +@option{--only-keep-debug} switch. + @item -V @itemx --version Show the version number for @command{strip}. |