Opera debug and tracing tools

Opera debug module documentation

(The documentation for the debug module is now completely contained in the source code in doxygen format. Run doxygen in the modules/debug/documentation/ directory to create the documentation if it does not exist.

Alternatively, have a look in Eddy's doxygenification of debug module.

Tracing with OP_DBG

Note: This section to be moved

Tracing is provided for by the OP_NEW_DBG(function-name, key) and OP_DBG(("fmt", …)) macros. In non-debug builds, the former declares an object and the latter calls a method on that object if the key is listed in your configuration file.

The configuration file is specified by passing it as the parameter to Debug::InitSettings during Opera initialization. Lines in it which start with a # character are comments (note that a # elsewhere in the line has no special meaning). Other non-empty lines either set one of a small family of pre-defined variables (mostly toggles taking value on or off) or name a key whose tracing statements are to be active. For example:


# lines with first character # are comments
# some global settings you might want:
output=opdebug.out
clearfile=on
debugging=on
#tracing=on
#timing=on
#timestamp=on
#systemdebug=on
#console=on

# key values from OP_NEW_DBG(function, key) you want to exercise:
debug_gif_decoder
#voice
#util.adt
mail.engine.protocol
animation
DOM3LS
# A single '*' on a line by itself enables all keys; i.e. everything is logged
# *