Add trace channel for native/managed wrappers.
[mono.git] / mono / mini / trace.h
index a7f884fb250f8a11fea63af9a7f41f16e13582ba..af4ce40a39269c12bb384e9e2dac703adbb2063f 100644 (file)
@@ -1,5 +1,7 @@
 #ifndef __MONO_TRACE_H__
 #define __MONO_TRACE_H__
+#include <glib.h>
+#include "mono/utils/mono-compiler.h"
 
 typedef enum {
        MONO_TRACEOP_ALL,
@@ -7,7 +9,9 @@ typedef enum {
        MONO_TRACEOP_METHOD,
        MONO_TRACEOP_ASSEMBLY,
        MONO_TRACEOP_CLASS,
-       MONO_TRACEOP_NAMESPACE
+       MONO_TRACEOP_NAMESPACE,
+       MONO_TRACEOP_EXCEPTION,
+       MONO_TRACEOP_WRAPPER,
 } MonoTraceOpcode;
 
 typedef struct {
@@ -18,15 +22,24 @@ typedef struct {
 
 struct MonoTraceSpec {
        int len;
+       gboolean enabled;
        MonoTraceOperation *ops;
 
        MonoAssembly *assembly;
 };
 
+G_BEGIN_DECLS
+
 void
-mono_trace_enter_method (MonoMethod *method, char *ebp);
+mono_trace_enter_method (MonoMethod *method, char *ebp) MONO_INTERNAL;
 
 void 
-mono_trace_leave_method (MonoMethod *method, ...);
+mono_trace_leave_method (MonoMethod *method, ...) MONO_INTERNAL;
+
+void mono_trace_enable (gboolean enable) MONO_INTERNAL;
+gboolean mono_trace_is_enabled (void) MONO_INTERNAL;
+gboolean mono_trace_eval_exception (MonoClass *klass) MONO_INTERNAL;
+
+G_END_DECLS
 
 #endif /* __MONO_TRACE_H__ */