$EnableDiag

The following actions are available only if you set $EnableDiag = 1; in your configuration file. They can be used for debugging and should not be set in a production environment.

?action=ruleset
displays a list of all markups in 3 columns:
  • column 1 = markup-name (1. parameter of markup() )
  • column 2 = when will rule apply (2. parameter of markup() )
  • column 3 = Pm Wiki's internal sort key (derived from #2)
(see Custom Markup Using the Markup() function for custom wiki syntax ).
To see more than what ?action=ruleset gives you, apply the Cookbook:MarkupRulesetDebugging recipe: it can also show the pattern and the replacement strings.
  • doesn't make use of Pm Wiki's authorization mechanisms.

?action=phpinfo
displays the output of phpinfo() and exits. no page will be processed
  • doesn't make use of Pm Wiki's authorization mechanisms.

?action=diag
displays a dump of all global vars and exits. no page will be processed
  • doesn't make use of Pm Wiki's authorization mechanisms.
$EnableIMSCaching
A variable which, when set equal to 1, recognizes the "If-Modified-Since" header coming from browsers and allows browsers to use locally cached pages. Disabled by default to help the administrator customize its page without needing permanent reloading.
$EnableStopWatch
This activates an internal stopwatch that shows how long it takes to render a page. (If you have a wiki that composes a HTML page from multiple pages, such as a normal layout with a sidebar, you'll get separate timings for each subpage and for the total page.)
The timings can be displayed by adding <!--function:StopWatchHTML 1--> in the wiki template.
Valid values are:
        $EnableStopWatch = 0; # No timings (the default). No HTML will be generated.
        $EnableStopWatch = 1; # Wall-clock timings only.
        $EnableStopWatch = 2; # Wall-clock and CPU usage timings. Won't work on Windows.
See Stopwatch for more details.

See also:

  • scripts/refcount.php is useful for debugging

Is it possible for someone with admin priviledges to always have access to debugging tools, without letting everyone else access them?

You can easily & automatically allow debugging for anyone with admin priviledges (meanwhile leaving it off for everyone else) by including this line in config.php - just be sure that 1) $EnableDiag is either null or set to 0, and 2) to include it near the end of config.php, AFTER declaring your passwords, and after any Auth User or other priviledge settings:

if (Cond Auth?($pagename, 'admin')) $EnableDiag = 1; # allows admin to always call phpinfo, etc


This page may have a more recent version on pmwiki.org: PmWiki:DebugVariables, and a talk page: PmWiki:DebugVariables-Talk.

1st workshop of the HOSCAR project
July 25-27 2012, INRIA Sophia Antipolis-Méditerranée, France

2nd workshop of the HOSCAR project
September 10-13 2012, LNCC, Pétropolis, Brazil

3rd workshop of the HOSCAR project
September 2-6 2013, INRIA Bordeaux - Sud-Ouest, France

4th workshop of the HOSCAR project
September 15-18 2014, Gramado, Brazil

5th workshop of the HOSCAR project
September 21-24 2015, INRIA Sophia Antipolis-Méditerranée, France

Related events

SIAM PP14
Portland, Oregon, February 18-21, 2014

PANACM2015
Buenos Aires, Argentina, April 27-29, 2015