| @c ---------------------------------------------------------------------------- |
| @c This is the Texinfo source file for the gp-archive man page. |
| @c |
| @c Author: Ruud van der Pas |
| @c ---------------------------------------------------------------------------- |
| @ifset man |
| \input texinfo @c -*-texinfo-*- |
| @setfilename gp-archive |
| @settitle Archive gprofng experiment data |
| @include gp-macros.texi |
| @end ifset |
| |
| @c ---------------------------------------------------------------------------- |
| @c This is from the man-pages(7) man page |
| @c |
| @c "The list below shows conventional or suggested sections. Most manual pages |
| @c should include at least the highlighted sections. Arrange a new manual |
| @c page so that sections are placed in the order shown in the list." |
| @c |
| @c NAME |
| @c SYNOPSIS |
| @c CONFIGURATION [Normally only in Section 4] |
| @c DESCRIPTION |
| @c OPTIONS [Normally only in Sections 1, 8] |
| @c EXIT STATUS [Normally only in Sections 1, 8] |
| @c RETURN VALUE [Normally only in Sections 2, 3] |
| @c ERRORS [Typically only in Sections 2, 3] |
| @c ENVIRONMENT |
| @c FILES |
| @c VERSIONS [Normally only in Sections 2, 3] |
| @c ATTRIBUTES [Normally only in Sections 2, 3] |
| @c CONFORMING TO |
| @c NOTES |
| @c BUGS |
| @c EXAMPLES |
| @c AUTHORS [Discouraged] |
| @c REPORTING BUGS [Not used in man-pages] |
| @c COPYRIGHT [Not used in man-pages] |
| @c SEE ALSO |
| @c |
| @c This is what the texi2pod.pl tool recognizes: |
| @c |
| @c for $sect (qw(NAME SYNOPSIS TARGET DESCRIPTION OPTIONS ENVIRONMENT FILES |
| @c BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) { |
| @c |
| @c What is interesting is that it places "SEE ALSO" before "COPYRIGHT", which |
| @c makes sense and adhered to for the other formats. |
| @c ---------------------------------------------------------------------------- |
| |
| @c ---------------------------------------------------------------------------- |
| @c NAME section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{NAME} |
| @c man begin NAME |
| |
| gp-archive - Archive the associated application binaries and sources for a |
| gprofng experiment |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c SYNOPSIS section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{SYNOPSIS} |
| @c man begin SYNOPSIS |
| |
| @command{gprofng archive} [@var{option(s)}] @var{experiment} |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c DESCRIPTION section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{DESCRIPTION} |
| @c man begin DESCRIPTION |
| |
| Archive the associated application binaries and source files in a gprofng |
| experiment to make it self contained and portable. |
| |
| By default, the binaries are archived as part of the data collection, but the |
| application source files are not archived. Use this tool to change this and |
| afterwards archive additional components. |
| |
| This tool has to be executed on the same system where the profiling data was |
| recorded. |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c OPTIONS section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{OPTIONS} |
| @c man begin OPTIONS |
| |
| @table @gcctabopt |
| |
| @item --version |
| @ifclear man |
| @IndexSubentry{Options, @code{--version}} |
| @end ifclear |
| |
| Print the version number and exit. |
| |
| @item --help |
| @ifclear man |
| @IndexSubentry{Options, @code{--help}} |
| @end ifclear |
| |
| Print usage information and exit. |
| |
| @item -a @{off | on | ldobjects | src | usedldobjects | used[src]@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-a}} |
| @end ifclear |
| |
| Specify archiving of binaries and other files. In addition to disable this |
| feature (@samp{off}), or enable archiving of all loadobjects and sources |
| (@samp{on}), the other choices support a more refined selection. |
| |
| All of these choices enable archiving, but the keyword controls what exactly |
| is selected: all load objects (@samp{ldobjects}), all source files |
| (@samp{src}), the loadobjects associated with a program counter |
| (@samp{usedldobjects}), or the source files associated with a program counter |
| (@samp{used[src]}). The default is @samp{-a ldobjects}. |
| |
| @item -d @var{path} |
| @ifclear man |
| @IndexSubentry{Options, @code{-d}} |
| @end ifclear |
| |
| The @var{path} is the absolute path to a common archive, which is a |
| directory that contains archived files. If the directory does not |
| exist, then it will be created. Files are saved in the common archive |
| directory, and a symbolic link is created in the experiment archive. |
| |
| @item -F |
| @ifclear man |
| @IndexSubentry{Options, @code{-F}} |
| @end ifclear |
| |
| Force writing, or rewriting of .archive files. All archived files will be |
| removed and recreated, except if the @samp{-n} or @samp{-m} option is used, |
| or if the experiment is a subexperiment. |
| |
| @item -m @var{regex} |
| @ifclear man |
| @IndexSubentry{Options, @code{-m}} |
| @end ifclear |
| |
| Archive only those source, object, and debug info files whose full path name |
| matches the given POSIX compliant @var{regex} regular expression. |
| |
| @item -n |
| @ifclear man |
| @IndexSubentry{Options, @code{-n}} |
| @end ifclear |
| |
| Archive the named experiment only, not any of its descendants. |
| |
| @item -q |
| @ifclear man |
| @IndexSubentry{Options, @code{-q}} |
| @end ifclear |
| |
| Do not write any warnings to @file{stderr}. Warnings are incorporated into |
| the .archive file in the experiment directory. They are shown in the output |
| of the @command{gprofng display text} command. |
| |
| @item -r @var{path} |
| @ifclear man |
| @IndexSubentry{Options, @code{-r}} |
| @end ifclear |
| |
| This option specifies the location of a common archive. The value is the |
| relative path to a common archive, which is a directory that contains |
| archived files. |
| If the directory does not exist, then it will be created. Files are saved |
| in the common archive directory, and a symbolic link is created in the |
| experiment archive. |
| |
| @item -s @var{selection} |
| @ifclear man |
| @IndexSubentry{Options, @code{-s}} |
| @end ifclear |
| |
| Specify archiving of source files. The allowed values for @var{selection} are: |
| |
| @table @gcctabopt |
| |
| @item no |
| |
| Do not archive any source files. |
| |
| @item all |
| |
| Archive all source and object files that can be found. |
| |
| @item used[src] |
| |
| Archive source and object files for functions against which data was |
| recorded in the experiment, and that can be found. |
| @end table |
| |
| By default, application source files are not archived into the experiment. |
| If the @samp{-s all}, or @samp{-s used} option is used, sources and object |
| files are archived. |
| These options also ensure that source files are available in the experiment, |
| even if the original source files have been modified, or are inaccessible |
| afterwards. |
| |
| In case archive files cannot be found, use the @samp{addpath}, or |
| @samp{pathmap} command, or both, in an @file{.er.rc} file to specify the |
| location of the missing file(s). |
| |
| @end table |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c NOTES section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{NOTES} |
| @c man begin NOTES |
| |
| @itemize @minus |
| |
| @c ---------------------------------------------------------------------------- |
| @item |
| Archiving of application binaries - |
| By default, binaries are archived automatically when an experiment is |
| created. However, archiving does not occur in one or more of the |
| following circumstances: |
| |
| @itemize @bullet |
| |
| @item |
| If the profiled application is terminated before it exits normally. |
| |
| @item |
| If a running process is profiled. |
| |
| @item |
| If archiving is explicitly disabled when profiling. For example by using |
| the @samp{-a off} option on @command{gprofng collect app}. |
| |
| @end itemize |
| |
| In these cases, @command{gprofng archive} must be run manually and on the same |
| machine where the profiling data was recorded. |
| |
| Archiving of experiment data during the data collection process can be quite |
| expensive. Especially if the experiment has many descendant processes. |
| @ifclear man |
| @IndexSubentry{Options, @code{-a}} |
| @end ifclear |
| In such cases, a more efficient strategy is to use the @samp{-a off} option |
| when collecting the data. Once the collection has completed, the data can be |
| @ifclear man |
| @IndexSubentry{Options, @code{-s}} |
| @end ifclear |
| archived using the @samp{-s all} option. This saves all executables and |
| source files in the experiment. |
| |
| If during the archiving there is an error message that an executable, or |
| @ifclear man |
| @IndexSubentry{Commands, @code{addpath}} |
| @end ifclear |
| source file cannot be found, the @samp{addpath} command to add the path |
| to the missing file(s) can be included in the @file{.er.rc} file. |
| After this command has been added, archive the experiment again. The |
| archiving archiving can be repeated as many times as necessary to archive all |
| files. |
| |
| Archiving should be done on the same system as was used to collect the |
| experiment. If some files cannot be accessed from this system (e.g. sources |
| or object files), then additional archiving can be done using another system |
| that can access them. For example, the system where the application was built. |
| |
| Some Java applications store shared objects in jar files. By default, such |
| shared objects are not automatically archived. To archive shared objects |
| contained in jar files, make sure to include the @samp{addpath} command in |
| an @file{.er.rc} file. |
| The @samp{addpath} command should give the path to the jar file, including |
| the jar file itself. The @file{.er.rc} file should be saved in the user home |
| directory, or experiment parent directory. |
| |
| @item |
| Archiving of application sources - |
| By default, application source files are not archived in the experiment. |
| Execute the @command{gprofng archive} command with the @samp{-s all}, or |
| @samp{-s used} option on each experiment to store source files in the |
| experiment. |
| |
| @item |
| Automatic archiving of application sources - |
| Environment variable @samp{GPROFNG_ARCHIVE} may be set to automatically |
| archive sources when the experiment has completed. This environment |
| variable can contain @samp{-s} and @samp{-m} arguments, as pairs of |
| argument and options, separated by one or more blanks. |
| @ifclear man |
| @IndexSubentry{Environment variables, @code{GPROFNG_ARCHIVE}} |
| @IndexSubentry{Options, @code{-a}} |
| @IndexSubentry{Options, @code{-m}} |
| @IndexSubentry{Options, @code{-s}} |
| @end ifclear |
| |
| If more than one @samp{-s} argument appears on the command line, the |
| last one prevails. If @samp{-s} is both passed on the command line, and |
| set by the environment variable, the option from the environment variable |
| prevails. |
| |
| Note that in case automatic source archiving during data collection has |
| been enabled using either the @samp{GPROFNG_ARCHIVE} variable, or the |
| @samp{-a src}, or @samp{-a usedsrc} option, it is recommended to confirm that |
| source files have been correctly resolved by executing the |
| @command{gprofng archive -s all}, or @command{gprofng archive -s used} |
| command. |
| |
| @item |
| The @samp{-d} and @samp{-r} options are mutually exclusive. |
| @ifclear man |
| @IndexSubentry{Options, @code{-d}} |
| @IndexSubentry{Options, @code{-r}} |
| @end ifclear |
| |
| @item |
| When using the @samp{-d} or @samp{-r} option, environment variable |
| @ifclear man |
| @IndexSubentry{Options, @code{-d}} |
| @IndexSubentry{Options, @code{-r}} |
| @IndexSubentry{Environment variables, @code{GPROFNG_ARCHIVE_COMMON_DIR}} |
| @end ifclear |
| @samp{GPROFNG_ARCHIVE_COMMON_DIR} can be used to specify the location of |
| the common archive. This can be very convenient when using a script to |
| profile applications. |
| |
| @item |
| If more than one @samp{-s} option is given on the command line, or |
| specified in the environment variable, the specified option for all must |
| be the same. If not, @command{gprofng archive} exits with an error. |
| |
| @item |
| This tool does not work on experiments recorded with earlier versions of |
| the tools. If invoked on such experiments, a warning is printed. Use the |
| version of @command{gprofng archive} from the same release with which the |
| experiment was recorded. |
| |
| @end itemize |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c SEEALSO section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{SEE ALSO} |
| @c man begin SEEALSO |
| |
| gprofng(1), |
| gp-collect-app(1), |
| gp-display-gui(1), |
| gp-display-html(1), |
| gp-display-src(1), |
| gp-display-text(1) |
| |
| @iftex |
| @vspace{1} |
| @end iftex |
| |
| The user guide for gprofng is maintained as a Texinfo manual. If the info |
| and gprofng programs are correctly installed, the command |
| @command{info gprofng} should give access to this document. |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c COPYRIGHT section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{COPYRIGHT} |
| @c man begin COPYRIGHT |
| |
| Copyright @copyright{} 2022-2023 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 any later version published by the Free Software Foundation; |
| with no Invariant Sections, with no Front-Cover Texts, and with no |
| Back-Cover Texts. A copy of the license is included in the |
| section entitled ``GNU Free Documentation License''. |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c If this text is used for a man page, exit. Otherwise we need to continue. |
| @c ---------------------------------------------------------------------------- |
| |
| @ifset man |
| @bye |
| @end ifset |