Chapter 9. Debug Logging

Table of Contents
9.1. Debugging classes
9.2. Debugging channels
9.3. How to use it
9.4. Are we debugging?
9.5. Resource identifiers
9.6. The --debugmsg command line option
9.7. Compiling Out Debugging Messages
9.8. A Few Notes on Style

Written by Dimitrie O. Paun , 28 Mar 1998

(Extracted from wine/documentation/debug-msgs)

Note: It is possible to turn on and of debugging output from within the debuger using the set command. Please see the WineDbg Command Reference section for how to do this.

Important: At the end of the document, there is a "Style Guide" for debugging messages. Please read it.

9.1. Debugging classes

There are 4 types (or classes) of messages:

FIXME

Messages in this class are meant to signal unimplemented features, known bugs, etc. They serve as a constant and active reminder of what needs to be done.

Examples: stubs, semi-implemented features, etc.

ERR

Messages in this class relate to serious errors in Wine. This sort of messages signal an inconsistent internal state, or more general, a condition which should never happen by design.

Examples: unexpected change in internal state, etc.

WARN

These are warning messages. You should report a warning when something unwanted happen but the function behaves properly. That is, output a warning when you encounter something unexpected (ex: could not open a file) but the function deals correctly with the situation (that is, according to the docs). If you do not deal correctly with it, output a fixme.

Examples: fail to access a resource required by the app.

TRACE

These are detailed debugging messages that are mainly useful to debug a component. These are usually turned off.

Examples: everything else that does not fall in one of the above mentioned categories and the user does not need to know about it.