Debugging is the art of finding errors.
XOOPS has three levels of debugging; PHP debug, MySQL debug and Smarty debug.
If PHP debug is not on, the system will suppress error messages coming from the PHP code.
This is the main reason for the dreaded "Blank Page" problem, which is caused by an error in the PHP code, so serious that the interpretation of the code can no longer continue.
Enabling PHP debug will often result in these blank pages showing an error message instead.
With this debugging setting enabled, a window will popup after each page load, showing the database queries, executed on the page. It will also show which blocks and templates are used on the page along with caching information (whether the block or template is cached)
Faulty SQL queries will be highlighted in red with a MySQL error message appended
Smarty debug settings will open a new window on all pages using Smarty templates, showing all variables assigned to Smarty along with their values.
This debug setting is useful if you know that there are no PHP errors, that the SQL queries execute successfully, but the information does not show up as expected. Quite often it is a matter of organising the information correctly for display which is only discovered by looking at the actual values in each Smarty variable. An example is information in an array, which the template is coded to take from a sub-array instead - or vice versa.
--- Additional details submitted by Jdseymour
on 13-Jan-2005 00:07
To add to this answer here are three flash tutorials that show how to enable each debug mode, and how the output of each mode looks.
1.PHP Debug Mode Tutorial
2. MySQL Debug Tutorial
3. Smarty Template Debug Tutorial