| @c ---------------------------------------------------------------------------- |
| @c This is the Texinfo source file for the gprofng-collect-app man page. |
| @c |
| @c Author: Ruud van der Pas |
| @c ---------------------------------------------------------------------------- |
| @ifset man |
| \input texinfo @c -*-texinfo-*- |
| @setfilename gprofng-collect-app |
| @settitle Collect performance data for the target application |
| @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-collect-app - Collect performance data for the target program |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c SYNOPSIS section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{SYNOPSIS} |
| @c man begin SYNOPSIS |
| |
| @command{gprofng collect app} [@var{option(s)}] @var{target} |
| [@var{target-option(s)}] |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c DESCRIPTION section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{DESCRIPTION} |
| @c man begin DESCRIPTION |
| |
| Collect performance data on the target program. In addition to Program Counter |
| (PC) sampling, hardware event counters and various tracing options are |
| supported. |
| |
| For example, this command collects performance data for an executable called |
| @samp{a.out} and stores the data collected in an experiment directory with |
| the name @samp{example.er}. |
| |
| @smallexample |
| $ gprofng collect app -o example.er ./a.out |
| @end smallexample |
| |
| @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 -v, --verbose |
| @ifclear man |
| @IndexSubentry{Options, @code{-v}} |
| @IndexSubentry{Options, @code{--verbose}} |
| @end ifclear |
| |
| By default, verbose mode is disabled. This option enables it. |
| |
| @item -p @{off | on | lo[w] | hi[gh] | @var{<value>}@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-p}} |
| @end ifclear |
| |
| Disable (@samp{off}) or enable (@samp{on}) clock profiling using a default |
| sampling granularity, or enable clock profiling implicitly by setting the |
| sampling granularity (@samp{lo[w]}, @samp{hi[gh]}, or a specific value in |
| ms). By default, clock profiling is enabled (@samp{-p on}). |
| |
| @item -h @var{<ctr_def>[,<ctr_def>]} |
| @ifclear man |
| @IndexSubentry{Options, @code{-h}} |
| @end ifclear |
| Enable hardware event counter profiling and select one or more counter(s). |
| To see the supported counters on this system, use the @samp{-h} option |
| without other arguments. |
| |
| @item -o @var{<exp_name>} |
| @ifclear man |
| @IndexSubentry{Options, @code{-o}} |
| @end ifclear |
| |
| Specify the name for the experiment directory. The name has to end with |
| @samp{.er} and may contain an absolute path (e.g. @file{/tmp/experiment.er}). |
| An existing experiment with the same name will not be overwritten. |
| |
| @item -O @var{<exp_name>} |
| @ifclear man |
| @IndexSubentry{Options, @code{-O}} |
| @end ifclear |
| |
| This is the same as the @samp{-o} option, but unlike this option, silently |
| overwrites an existing experiment directory with the same name. |
| |
| @item -C @var{<comment_string>} |
| @ifclear man |
| @IndexSubentry{Options, @code{-C}} |
| @end ifclear |
| |
| Add up to 10 comment strings to the experiment. These comments appear in the |
| notes section of the header and can be retrieved with the |
| @command{gprofng display text} command using the @samp{-header} option. |
| @ifclear man |
| @IndexSubentry{Options, @code{-header}} |
| @IndexSubentry{Commands, @code{-header}} |
| @end ifclear |
| |
| @item -j @{on | off | @var{<path>}@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-j}} |
| @end ifclear |
| |
| Controls Java profiling when the target is a JVM machine. The allowed values |
| for this option are: |
| |
| @table @gcctabopt |
| |
| @item on |
| Record profiling data for the JVM machine, and recognize methods compiled by |
| the Java HotSpot virtual machine. Also record Java call stacks. |
| |
| @item off |
| Do not record Java profiling data. Profiling data for native call stacks is |
| still recorded. |
| |
| @item @var{<path>} |
| Records profiling data for the JVM, and use the JVM as installed in |
| @var{<path>}. |
| |
| @end table |
| |
| The default is @samp{-j on}. |
| |
| @item -J @var{<jvm-option(s)>} |
| @ifclear man |
| @IndexSubentry{Options, @code{-J}} |
| @end ifclear |
| |
| Specifies one or more additional options to be passed to the JVM used. The |
| @var{jvm-option(s)} list must be enclosed in quotation marks if it contains |
| more than one option. The items in the list need to be separated by spaces |
| or tabs. |
| Each item is passed as a separate option to the JVM. Note that this option |
| implies @samp{-j on}. |
| |
| @item -t @var{<duration>}[m|s] |
| @ifclear man |
| @IndexSubentry{Options, @code{-t}} |
| @end ifclear |
| |
| Collects data for the specified duration. The duration can be a single number, |
| optionally followed by either @samp{m} to specify minutes, or @samp{s} to |
| specify seconds, which is the default. |
| |
| The duration can also consists of two numbers separated by a minus (@minus{}) |
| sign. If a single number is given, data is collected from the start of the run |
| until the given time. |
| If two numbers are given, data is collected from the first time to the second. |
| In case the second time is zero, data is collected until the end of the run. |
| If two non-zero numbers are given, the first must be less than the second. |
| |
| @item -n |
| @ifclear man |
| @IndexSubentry{Options, @code{-n}} |
| @end ifclear |
| |
| This is used for a dry run. Several run-time settings are displayed, but the |
| target is not executed and no performance data is collected. |
| |
| @item -F @{off|on|=@var{regex}@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-F}} |
| @end ifclear |
| |
| Control whether descendant processes should have their data recorded. |
| To disable/enable this feature, use @samp{off}/@samp{on}. Use |
| @samp{=}@var{regex} to record data on those processes whose executable name |
| matches the regular expression. Only the basename of the executable is used, |
| not the full path. If spaces or characters interpreted by the shell are used, |
| enclose the @var{regex} in single quotes. The default is @samp{-F on}. |
| |
| @item -a @{off|on|ldobjects|src|usedldobjects|usedsrc@} |
| @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 off all loadobjects and sources |
| (@samp{on}), the other options support a more refined selection. |
| |
| All of these options enable archiving, but the keyword controls what exactly |
| is selected: all load objects (ldobjects), all source files (src), the |
| loadobjects asscoiated with a program counter (usedldobjects), or the source |
| files associated with a program counter (usedsrc). |
| The default is @samp{-a ldobjects}. |
| |
| @item -S @{off|on|@var{<seconds>}@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-S}} |
| @end ifclear |
| |
| Disable (off), or enable (on) periodic sampling of process-wide |
| resource utilization. By default, sampling occurs every second. Use the |
| @var{<seconds>} option to change this. The default is @samp{-S on}. |
| |
| @item -y @var{<signal>}[,r] |
| @ifclear man |
| @IndexSubentry{Options, @code{-y}} |
| @end ifclear |
| |
| Controls recording of data with the signal named @var{<signal>}, referred to |
| as the pause-resume signal. Whenever the given signal is delivered to the |
| process, switch between paused (no data is recorded) and resumed (data is |
| recorded) states. |
| |
| By default, data collection begins in the paused state. If the optional |
| @samp{r} is given, data collection begins in the resumed state and data |
| collection begins immediately. |
| |
| SIGUSR1 or SIGUSR2 are recommended for this use, but any signal that is |
| not used by the target can be used. |
| |
| @item -l @var{<signal>} |
| @ifclear man |
| @IndexSubentry{Options, @code{-l}} |
| @end ifclear |
| |
| Specify a signal that will trigger a sample of process-wide resource |
| utilization. When the named @var{<signal>} is delivered to the process, |
| a sample is recorded. |
| |
| The signal can be specified using the full name, without the initial |
| letters @code{SIG}, or the signal number. Note that the @command{kill} |
| command can be used to deliver a signal. |
| |
| If both the @samp{-l} and @samp{-y} options are used, the signal must be |
| different. |
| |
| @item -s @var{<option>}[,@var{<API>}] |
| @ifclear man |
| @IndexSubentry{Options, @code{-s}} |
| @end ifclear |
| |
| Enable synchronization wait tracing, where @var{<option>} is used to define the |
| specifics of the tracing (on, off, @var{<threshold>}, or all). The API is |
| selected through the setting for @var{<API>}: @samp{n} selects native/Pthreads, |
| @samp{j} selects Java, and @samp{nj} selects both. The default is |
| @samp{-s off}. |
| |
| @item -H @{off|on@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-H}} |
| @end ifclear |
| |
| Disable (off), or enable (on) heap tracing. The default is @samp{-H off}. |
| |
| @item -i @{off|on@} |
| @ifclear man |
| @IndexSubentry{Options, @code{-i}} |
| @end ifclear |
| |
| Disable (off), or enable (on) I/O tracing. The default is @samp{-i off}. |
| |
| @end table |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c NOTES section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{NOTES} |
| @c man begin NOTES |
| |
| Any executable in the ELF (Executable and Linkable Format) object format can |
| be used for profiling with gprofng. If debug information is available, |
| gprofng can provide more details, but this is not a requirement. |
| |
| @c man end |
| @ManPageEnd{} |
| |
| @c ---------------------------------------------------------------------------- |
| @c SEEALSO section |
| @c ---------------------------------------------------------------------------- |
| |
| @ManPageStart{SEE ALSO} |
| @c man begin SEEALSO |
| |
| gprofng(1), |
| gprofng-archive(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 |