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