GPROFNG(1)

πŸ’… GPROFNG β€” it's the manual page for gprofng(1), bestie

okay so. sit down. hydrate. we're talking about gprofng, which is the next generation GNU application profiling tool ✨ It lives in the User Commands section of manual page 1, and it is that girl.


πŸŽ€ NAME πŸŽ€

gprofng β€” The next generation GNU application profiling tool. periodt.


πŸ¦‹ SYNOPSIS πŸ¦‹

gprofng [option(s)] action [qualifier] [option(s)] target [options]

that's the whole shape of it. options, then an action, maybe a qualifier, more options, then the target, then options for the target. it's giving layered. it's giving nesting. πŸ’…


🌸 DESCRIPTION 🌸

so this right here? this is the driver for the gprofng tools suite β€” the whole lil ecosystem you use to gather and analyze performance data. 🫢

The driver executes the action you specified. An example of an action is collect to collect performance data. Depending on the action, a qualifier may be needed to further define the command. And the last item is the target that the command applies to. main character lineup, honestly.

Now β€” there are three places where options are supported, and this is the part that trips people up so listen up πŸ™ˆ

  1. The driver supports options. Those are the ones listed below in OPTIONS.
  2. The action, possibly in combination with the qualifier, also supports options. A description of those? In the man page for the command itself, bestie.
  3. Any options needed to execute the target command should follow the target name.

like, for example β€” to collect performance data for an application called a.out and store the results in experiment directory mydata.er, you'd run:

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

Let's vibe-check that line piece by piece:

  • the action is collect
  • the qualifier is app
  • the single argument to the command is "-o mydata.er"
  • the target is a.out
  • and the target command gets invoked with the -t 2 option

see how the last -t 2 belongs to a.out, not to gprofng? iykyk. 😭

And hey β€” if you run gprofng with no additional option, action, or target? It just prints a usage overview. no notes, it's helpful like that.


✨ OPTIONS ✨

  • --version β€” Print the version number and exit. quick lil flex then bye πŸ’–
  • --help β€” Print usage information and exit. the classic, the beloved, the "help me" button 🫢

🌈 ENVIRONMENT 🌈

The following environment variables are supported, and yes you need to know them:

  • GPROFNG_MAX_CALL_STACK_DEPTH β€” Set the depth of the call stack. Default is 256.
  • GPROFNG_USE_JAVA_OPTIONS β€” May be set when profiling a C/C++ application that uses dlopen() to execute Java code. niche but iconic ✨
  • GPROFNG_ALLOW_CORE_DUMP β€” Set this variable to allow a core file to be generated. Otherwise, an error report is created on /tmp. so like. choose your fighter πŸ’€
  • GPROFNG_ARCHIVE β€” Use this variable to define the settings for automatic archiving upon experiment recording completion.
  • GPROFNG_ARCHIVE_COMMON_DIR β€” Set this variable to the location of the common archive.
  • GPROFNG_JAVA_MAX_CALL_STACK_DEPTH β€” Set the depth of the Java call stack; the default is 256; set to 0 to disable capturing of call stacks. zero means off, bestie, don't forget πŸ”₯
  • GPROFNG_JAVA_NATIVE_MAX_CALL_STACK_DEPTH β€” Set the depth of the Java native call stack; the default is 256; set to 0 to disable capturing of call stacks. Important lil caveat: JNI and assembly call stacks are not captured. noted. πŸ‘‘
  • GPROFNG_SYSCONFDIR β€” Set the path to the gprofng.rc configuration file. By default, this file is placed in the etc subdirectory of the binutils installation directory. In case an RPM has been used for the installation, this file is in directory /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 "GPROFNG_SYSCONFDIR" environment variable to point to this location.

Otherwise, the gprofng display text, gprofng display src, and gprofng archive tools cannot find this file. 😭 so like, set it. please.


πŸ’œ NOTES πŸ’œ

The gprofng driver supports the following commands. buckle up, there's a whole roster πŸŽ€

Collect performance data:

  • "gprofng collect app" β€” Collect application performance data.

Display the performance results:

  • "gprofng display text" β€” Display the performance data in ASCII format.
  • "gprofng display html" β€” Generate an HTML file from one or more experiments.
  • "gprofng display gui" β€” Start the GUI. Note that this tool is not available by default and needs to be installed seperately. (that's their spelling, we keep it exactly πŸ’…)

Miscellaneous commands:

  • "gprofng display src" β€” Display source or disassembly with compiler annotations.
  • "gprofng display gmon" β€” Convert a given gmon.out file to gprofng experiments.
  • "gprofng archive" β€” Include binaries and source code in an experiment directory.

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. like, just use the driver, bestie. save yourself 😭

The gprofng GUI is an optional tool that provides a graphical interface for "gprofng". It is easy to use and supports many views into the performance data. For those interested in this GUI, we recommend to search for "gprofng-gui" how to obtain, install and use it. go get your GUI queen πŸ‘‘


🌟 SEE ALSO 🌟


Each gprofng command also supports the --help option. This lists the options and a short description for each option. we love a self-documenting king 🫢

For example, this displays the options supported on the gprofng collect app command:

$ gprofng collect app --help

The user guide for gprofng is maintained as a Texinfo manual. If the info and gprofng programs are correctly installed, the command info gprofng should give access to this document. ✨


Copyright (c) 2022-2026 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".


k that's the whole page, no notes. this one came from binutils-2.47, dated 2026-09-10 β€” and that's the vibe check, done and dusted πŸ’–βœ¨πŸ¦‹πŸŽ€ periodt.
πŸ“¦ where this page comes from