In man:
[mono.git] / mono / mini / trace.h
1 #ifndef __MONO_TRACE_H__
2 #define __MONO_TRACE_H__
3 #include <glib.h>
4 #include "mono/utils/mono-compiler.h"
5
6 typedef enum {
7         MONO_TRACEOP_ALL,
8         MONO_TRACEOP_PROGRAM,
9         MONO_TRACEOP_METHOD,
10         MONO_TRACEOP_ASSEMBLY,
11         MONO_TRACEOP_CLASS,
12         MONO_TRACEOP_NAMESPACE,
13         MONO_TRACEOP_EXCEPTION,
14 } MonoTraceOpcode;
15
16 typedef struct {
17         MonoTraceOpcode op;
18         int   exclude;
19         void *data, *data2;
20 } MonoTraceOperation;
21
22 struct MonoTraceSpec {
23         int len;
24         gboolean enabled;
25         MonoTraceOperation *ops;
26
27         MonoAssembly *assembly;
28 };
29
30 G_BEGIN_DECLS
31
32 void
33 mono_trace_enter_method (MonoMethod *method, char *ebp) MONO_INTERNAL;
34
35 void 
36 mono_trace_leave_method (MonoMethod *method, ...) MONO_INTERNAL;
37
38 void mono_trace_enable (gboolean enable) MONO_INTERNAL;
39 gboolean mono_trace_is_enabled (void) MONO_INTERNAL;
40 gboolean mono_trace_eval_exception (MonoClass *klass) MONO_INTERNAL;
41
42 G_END_DECLS
43
44 #endif /* __MONO_TRACE_H__ */