mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-05 12:53:16 +08:00
d25ba4596e
gprofng application names have a gp- prefix (gp-display-text, gp-archive, etc.). But our man pages use the gprofng- prefix (gprofng-display-text, gprofng-archive, etc.). I renamed the gprofng binaries and temporarily created the gp-* links for compatibility with the old gprofng-gui. We plan to remove these links in version 2.46. gprofng/ChangeLog 2024-10-31 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> * doc/gprofng-archive.texi: Rename gprofng application names. * doc/gprofng-collect-app.texi: Likewise. * doc/gprofng-display-html.texi: Likewise. * doc/gprofng-display-src.texi: Likewise. * doc/gprofng-display-text.texi: Likewise. * doc/gprofng.texi: Likewise. * doc/gprofng_ug.texi: Likewise. * gp-display-html/Makefile.am: Likewise. * gp-display-html/gp-display-html.in: Likewise. * libcollector/collector.c: Likewise. * src/Application.cc: Likewise. * src/Experiment.cc: Likewise. * src/Makefile.am: Likewise. * src/gp-archive.cc: Likewise. * src/gp-collect-app.cc: Likewise. * src/gp-display-src.cc: Likewise. * src/gp-display-text.cc: Likewise. * src/gprofng.cc: Likewise. * src/Makefile.in: Rebuild. * gp-display-html/Makefile.in: Rebuild.
413 lines
14 KiB
Plaintext
413 lines
14 KiB
Plaintext
@c ----------------------------------------------------------------------------
|
|
@c This is the Texinfo source file for the gprofng-archive man page.
|
|
@c
|
|
@c Author: Ruud van der Pas
|
|
@c ----------------------------------------------------------------------------
|
|
@ifset man
|
|
\input texinfo @c -*-texinfo-*-
|
|
@setfilename gprofng-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
|
|
|
|
gprofng-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),
|
|
gprofng-collect-app(1),
|
|
@c -- gprofng-display-gui(1),
|
|
gprofng-display-html(1),
|
|
gprofng-display-src(1),
|
|
gprofng-display-text(1)
|
|
|
|
@iftex
|
|
@vspace{1}
|
|
@end iftex
|
|
|
|
The user guide for gprofng is maintained as a Texinfo manual. If the
|
|
@command{info} and @command{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-2024 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
|