diff options
| author | Michael Foster <savetheinternet@tinyboard.org> | 2013-09-23 10:11:16 +1000 |
|---|---|---|
| committer | Michael Foster <savetheinternet@tinyboard.org> | 2013-09-23 10:11:16 +1000 |
| commit | 39be89ba4945238f6311454283a66930b94577be (patch) | |
| tree | 3e7998109bdfbeac8bb589b0c74e2c8ac3514667 | |
| parent | ff4352d914f7fbedbbfd7068c4df5407b3ce1648 (diff) | |
?/debug/apc
| -rw-r--r-- | inc/config.php | 2 | ||||
| -rw-r--r-- | inc/mod/pages.php | 13 | ||||
| -rw-r--r-- | mod.php | 1 | ||||
| -rw-r--r-- | templates/mod/debug/apc.html | 23 |
4 files changed, 39 insertions, 0 deletions
diff --git a/inc/config.php b/inc/config.php index 5105c25f..9ca4cfeb 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1340,6 +1340,8 @@ $config['mod']['news_delete'] = ADMIN; // Execute un-filtered SQL queries on the database (?/debug/sql) $config['mod']['debug_sql'] = DISABLED; + // Look through all cache values for debugging when APC is enabled (?/debug/apc) + $config['mod']['debug_apc'] = ADMIN; // Edit the current configuration (via web interface) $config['mod']['edit_config'] = ADMIN; // View ban appeals diff --git a/inc/mod/pages.php b/inc/mod/pages.php index bae00a0f..4346cf94 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -2354,3 +2354,16 @@ function mod_debug_sql() { mod_page(_('Debug: SQL'), 'mod/debug/sql.html', $args); } +function mod_debug_apc() { + global $config; + + if (!hasPermission($config['mod']['debug_apc'])) + error($config['error']['noaccess']); + + if ($config['cache']['enabled'] != 'apc') + error('APC is not enabled.'); + + $cached_vars = new APCIterator('user', '/^' . $config['cache']['prefix'] . '/'); + + mod_page(_('Debug: APC'), 'mod/debug/apc.html', array('cached_vars' => $cached_vars)); +} @@ -89,6 +89,7 @@ $pages = array( // these pages aren't listed in the dashboard without $config['debug'] '/debug/antispam' => 'debug_antispam', '/debug/recent' => 'debug_recent_posts', + '/debug/apc' => 'debug_apc', '/debug/sql' => 'secure_POST debug_sql', // This should always be at the end: diff --git a/templates/mod/debug/apc.html b/templates/mod/debug/apc.html new file mode 100644 index 00000000..53f59eb0 --- /dev/null +++ b/templates/mod/debug/apc.html @@ -0,0 +1,23 @@ +<table class="modlog"> + <tr> + <th class="minimal">Key</th> + <th class="minimal">Hits</th> + <th class="minimal">Created</th> + <th class="minimal">Expires</th> + <th class="minimal">Size</th> + <th>Value</th> + </tr> + {% for var in cached_vars %} + <tr> + <td class="minimal">{{ var.key }}</td> + <td class="minimal">{{ var.num_hits }}</td> + <td class="minimal">{{ var.creation_time|ago }} ago</td> + <td class="minimal">{{ (var.creation_time + var.ttl)|until }} (ttl: {{ var.ttl }}s)</td> + <td class="minimal">{{ var.mem_size }} bytes</td> + <td style="word-wrap:break-word"> + {% set value = var.value|json_encode %} + <code>{{ value[:80]|e('html') }}{% if value|length > 80 %}…{% endif %}</code> + </td> + </tr> + {% endfor %} +</table>
\ No newline at end of file |
