pmdbg code ...
pmdbg -l [-o] [-g]
pmdbg -D name[,name ...]
The components of the Performance Co-Pilot (PCP) use a global mechanism to control diagnostic and debug output. Historically this was a vector of bit-fields but this was later replaced by an array of debug options. All of the bit-field debug controls have an equivalent in the new scheme, but some new debug options cannot be represented in the old bit-field scheme.
pmdbg with a -l option prints out all the debug options. If there is no -g and no -o option then the output lists the name of each option and some descriptive text.
With the -l and -g options the descriptive text is replaced with an expression that can be used to set or print the corresponding debug flag in gdb (1).
With the -l and -o options the output is for only the old bit-fields with the mnemonic and decimal values of each the bit-field along with some descriptive text.
Obviously the -o and -g options are mutually exclusive.
pmdbg with a -D option parses the list of names(s) using __pmParseDebug(3) and reports the corresponding decimal value. This use is not required in the new scheme, but for the old bit-fields scheme it was useful when debugging and wanting to set the internal value of the control vector (pmDebug) via a debugger, e.g. gdb(1). For the new scheme, the same effect can be achieved using the name of the option(s) and calling pmSetDebug(3) from within the debugger.
The alternative usage also relates to the old bit-field scheme and the code arguments are values for the debug vector, and the bit-fields that are enabled by each of these values is listed.
Each code may be an integer, a hexadecimal value or a hexadecimal value prefixed by either “0x” or “0X”.
Most applications using the facilities of the PCP support a -D name[,name ...] command-line syntax to enable debug control using the name(s) of the desired debug options.
Alternatively the initial value of the debug control flags may be set to either a value N (old scheme) or a comma-separated list if option name(s) (new scheme) using the environment variable $PCP_DEBUG. If both mechanisms are used the effect is additive, so the resultant flags are those set via $PCP_DEBUG combined with those set via any -D command line options.
The available command line options are:
- -D name, --debug=name
Parse a comma-separated list of name(s) and report the corresponding decimal value(s).
- -l, --list
List all the debug options.
- -g, --gdb
Output gdb(1) expressions with -l.
- -o, --old
Use old-style output format with -l.
- -?, --help
Display usage message and exit.
Environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the file /etc/pcp.conf contains the local values for these variables. The $PCP_CONF variable may be used to specify an alternative configuration file, as described in pcp.conf(5).
PCPIntro(1), pmSetDebug(3), pmClearDebug(3), __pmParseDebug(3), pcp.conf(5) and pcp.env(5).
dbpmda(1), PCPIntro(1), pmcd(1), PMDA(3), pmdaGetOpt(3), pmdaib(1), pmParseDebug(3), pmprintf(3), pmproxy(1), pmSetDebug(3).