blob: b6b50d867d4e996e7a460a0893a41827e84e0a13 [file] [log] [blame]
Alexandre Julliarda11d7b11998-03-01 20:05:02 +00001
Alexandre Julliarda69b88b1998-03-15 20:29:56 +00002#ifndef __WINE_DEBUGTOOLS_H
3#define __WINE_DEBUGTOOLS_H
Alexandre Julliarda11d7b11998-03-01 20:05:02 +00004
Alexandre Julliardc7c217b1998-04-13 12:21:30 +00005#ifdef __WINE__ /* Debugging interface is internal to Wine */
6
Alexandre Julliarda11d7b11998-03-01 20:05:02 +00007#include <stdio.h>
Alexandre Julliard54c27111998-03-29 19:44:57 +00008#include "debugstr.h"
Alexandre Julliarda11d7b11998-03-01 20:05:02 +00009
10#define DEBUG_RUNTIME
Alexandre Julliard54c27111998-03-29 19:44:57 +000011#define stddeb stderr
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000012
13#define DEBUG_CLASS_COUNT 4
14
15extern short debug_msg_enabled[][DEBUG_CLASS_COUNT];
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000016
17#define dbg_str(name) debug_str_##name
18#define dbg_buf(name) debug_buf_##name
19
20#define dbg_decl_str(name, size) \
21 char dbg_str(name)[size], *dbg_buf(name)=dbg_str(name)
22
23#define dbg_reset_str(name) \
24 dbg_buf(name)=dbg_str(name)
25
26#define dsprintf(name, format, args...) \
27 dbg_buf(name)+=sprintf(dbg_buf(name), format, ## args)
28
29#define dbg_ch_index(ch) (dbch_##ch)
30#define dbg_cl_index(cl) (dbcl_##cl)
31
Alexandre Julliarda69b88b1998-03-15 20:29:56 +000032#define DEBUGGING(cl, ch) \
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000033 (dbg_ch_index(ch) >=0 && dbg_cl_index(cl) >= 0 && \
34 debug_msg_enabled[dbg_ch_index(ch)][dbg_cl_index(cl)])
35
Alexandre Julliard54c27111998-03-29 19:44:57 +000036#define DPRINTF(format, args...) fprintf(stddeb, format, ## args)
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000037
Alexandre Julliarda69b88b1998-03-15 20:29:56 +000038#define DPRINTF_(cl, ch, format, args...) \
39 if(!DEBUGGING(cl, ch)) ; \
40 else DPRINTF(# cl ":" # ch ":%s " format, __FUNCTION__ , ## args)
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000041
Alexandre Julliarda69b88b1998-03-15 20:29:56 +000042#define TRACE(ch, fmt, args...) DPRINTF_(trace, ch, fmt, ## args)
43#define WARN(ch, fmt, args...) DPRINTF_(warn, ch, fmt, ## args)
44#define FIXME(ch, fmt, args...) DPRINTF_(fixme, ch, fmt, ## args)
45#define ERR(ch, fmt, args...) DPRINTF_(err, ch, fmt, ## args)
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000046
Alexandre Julliard54c27111998-03-29 19:44:57 +000047#define DUMP(format, args...) DPRINTF(format, ## args)
48#define MSG(format, args...) fprintf(stderr, format, ## args)
49
Alexandre Julliarda69b88b1998-03-15 20:29:56 +000050#define FIXME_ON(ch) DEBUGGING(fixme, ch)
51#define ERR_ON(ch) DEBUGGING(err, ch)
52#define WARN_ON(ch) DEBUGGING(warn, ch)
53#define TRACE_ON(ch) DEBUGGING(trace, ch)
Alexandre Julliarda11d7b11998-03-01 20:05:02 +000054
Alexandre Julliardc7c217b1998-04-13 12:21:30 +000055#endif /* __WINE__ */
56
Alexandre Julliarda69b88b1998-03-15 20:29:56 +000057#endif /* __WINE_DEBUGTOOLS_H */