aboutsummaryrefslogtreecommitdiff
path: root/gprofng/doc/gprofng.texi
blob: 387104e0cea3249aa801f95ef05d4fdfddf27984 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
@c ----------------------------------------------------------------------------
@c This is the Texinfo source file for the gprofng man page.
@c
@c Author: Ruud van der Pas
@c ----------------------------------------------------------------------------
@ifset man
\input texinfo @c -*-texinfo-*-
@setfilename gprofng
@settitle The next generation GNU application profiling tool
@include gp-macros.texi
@end ifset

@c @ManPageStart{NAME}
@c @ManPageStart{SYNOPSIS}
@c @ManPageStart{DESCRIPTION}
@c @ManPageStart{OPTIONS}
@c @ManPageStart{NOTES}
@c @ManPageStart{SEEALSO}
@c @ManPageStart{COPYRIGHT}

@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 - The driver for the gprofng application profiling tool

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c SYNOPSIS section
@c ----------------------------------------------------------------------------

@ManPageStart{SYNOPSIS}
@c man begin SYNOPSIS

@command{gprofng} [@var{option(s)}] @var{action} [@var{qualifier}]
[@var{option(s)}] @var{target} [@var{options}]

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c DESCRIPTION section
@c ----------------------------------------------------------------------------

@ManPageStart{DESCRIPTION}
@c man begin DESCRIPTION

This is the driver for the gprofng tools suite to gather and analyze
performance data.

The driver executes the @var{action} specified.  An example of an action is
@samp{collect} to collect performance data.  Depending on the action, a
@var{qualifier} may be needed to further define the command.
The last item is the @var{target} that the command applies to.

There are three places where options are supported.  The driver supports
options.  These can be found below.  The @var{action}, possibly in combination
with the @var{qualifier} also supports options.  A description of these can be
found in the man page for the command.  Any options needed to execute the
target command should follow the target name.

For example, to collect performance data for an application called
@command{a.out} and store the results in experiment directory @samp{mydata.er},
the following command may be used:

@smallexample
$ gprofng collect app -o mydata.er a.out -t 2
@end smallexample

In this example, the action is @samp{collect}, the qualifier is @samp{app},
the single argument to the command is @code{-o mydata.er} and the target is
@command{a.out}.  The target command is invoked with the @samp{-t 2} option.

If gprofng is executed without any additional option, action, or target, a
usage overview is printed.

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c OPTIONS section
@c ----------------------------------------------------------------------------

@ManPageStart{OPTIONS}
@c man begin OPTIONS

@table @gcctabopt

@item @var{--version}
@ifclear man
@IndexSubentry{Options, @code{--version}}
@end ifclear
Print the version number and exit.

@item @var{--help}
@ifclear man
@IndexSubentry{Options, @code{--help}}
@end ifclear
Print usage information and exit.

@end table

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c ENVIRONMENT SECTION
@c ----------------------------------------------------------------------------

@ManPageStart{ENVIRONMENT}
@c man begin ENVIRONMENT

The following environment variables are supported:

@table @samp

@item @env{GPROFNG_MAX_CALL_STACK_DEPTH}

@ifclear man
@cindex Environment variables
@end ifclear

Set the depth of the call stack (default is 256).

@item @env{GPROFNG_USE_JAVA_OPTIONS}

@ifclear man
@cindex Environment variables
@end ifclear

May be set when profiling a C/C++ application that uses dlopen() to execute
Java code.

@c -- deferred @item @env{GPROFNG_SSH_REMOTE_DISPLAY}
@c -- deferred Use this variable to define the ssh command executed by the
@c -- remote display tool.

@c -- deferred @item @env{GPROFNG_SKIP_VALIDATION}
@c -- deferred Set this variable to disable checking hardware, system, and
@c -- Java versions.

@item @env{GPROFNG_ALLOW_CORE_DUMP}

@ifclear man
@cindex Environment variables
@end ifclear

Set this variable to allow a core file to be generated; otherwise an error
report is created on @samp{/tmp}.

@item @env{GPROFNG_ARCHIVE}

@ifclear man
@cindex Environment variables
@end ifclear

Use this variable to define the settings for automatic archiving upon
experiment recording completion.

@item @env{GPROFNG_ARCHIVE_COMMON_DIR}

@ifclear man
@cindex Environment variables
@end ifclear

Set this variable to the location of the common archive.

@item @env{GPROFNG_JAVA_MAX_CALL_STACK_DEPTH}

@ifclear man
@cindex Environment variables
@end ifclear

Set the depth of the Java call stack; the default is 256; set to 0 to disable
capturing of call stacks.

@item @env{GPROFNG_JAVA_NATIVE_MAX_CALL_STACK_DEPTH}

@ifclear man
@cindex Environment variables
@end ifclear

Set the depth of the Java native call stack; the default is 256; set to 0 to
disable capturing of call stacks (JNI and assembly call stacks are not
captured).

@item @env{GPROFNG_SYSCONFDIR}

@ifclear man
@cindex Environment variables
@end ifclear

Set the path to the @file{gprofng.rc} configuration file.  By default, this
file is placed in the @file{etc} subdirectory of the binutils installation
directory.  In case an RPM has been used for the installation, this file is
in directory @file{/etc}.

When building and installing from the source, the user can set the path
to this configuration file to a non-default location.  If this is the case,
the user may set the @code{GPROFNG_SYSCONFDIR} environment variable to point
to this location.

Otherwise, the @command{gp-display-text}, @command{gp-display-src}, and
@command{gp-archive} tools cannot find this file.

@end table

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c NOTES section
@c ----------------------------------------------------------------------------

@ManPageStart{NOTES}
@c man begin NOTES

The gprofng driver supports the following commands.

@iftex
@vspace{1}
@end iftex

@c The man pages for the commands below can be viewed using the command name
@c with "gprofng" replaced by "gp" and the spaces replaced by a dash ("-").
@c For example the man page name for "gprofng collect app" is "gp-collect-app".

@i{Collect performance data:}

@table @code

@item gprofng collect app
Collect application performance data.

@end table

@i{Display the performance results:}

@table @code

@item gprofng display text
Display the performance data in ASCII format.

@item gprofng display html
Generate an HTML file from one or more experiments.

@item gprofng display gui
Start the GUI.  Note that this tool is not available by default and needs to
be installed seperately.

@end table

@i{Miscellaneous commands:}

@table @code

@item gprofng display src
Display source or disassembly with compiler annotations.

@item gprofng archive
Include binaries and source code in an experiment directory.

@end table

It is also possible to invoke the lower level commands directly, but since
these are subject to change, in particular the options, we recommend to
use the driver.

@c man end
@ManPageEnd{}

@c ----------------------------------------------------------------------------
@c SEEALSO section
@c ----------------------------------------------------------------------------

@ManPageStart{SEE ALSO}
@c man begin SEEALSO

gp-archive(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

Each gprofng command also supports the @option{--help} option.  This lists the
options and a short description for each option.

For example this displays the options supported on the
@command{gprofng collect app} command:

@smallexample
$ gprofng collect app --help
@end smallexample

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-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