[interp] Fix interp logging (#17636)
[mono-project.git] / mono / mini / debugger-agent.h
blob1b2d8affd8a2cc22d5761e0f8351c7bf8a7a588b
1 /**
2 * \file
3 */
5 #ifndef __MONO_DEBUGGER_AGENT_H__
6 #define __MONO_DEBUGGER_AGENT_H__
8 #include "mini.h"
9 #include <mono/utils/mono-stack-unwinding.h>
11 #define MONO_DBG_CALLBACKS_VERSION (2)
12 // 2. debug_log parameters changed from MonoString* to MonoStringHandle
14 struct _MonoDebuggerCallbacks {
15 int version;
16 void (*parse_options) (char *options);
17 void (*init) (void);
18 void (*breakpoint_hit) (void *sigctx);
19 void (*single_step_event) (void *sigctx);
20 void (*single_step_from_context) (MonoContext *ctx);
21 void (*breakpoint_from_context) (MonoContext *ctx);
22 void (*free_domain_info) (MonoDomain *domain);
23 void (*unhandled_exception) (MonoException *exc);
24 void (*handle_exception) (MonoException *exc, MonoContext *throw_ctx,
25 MonoContext *catch_ctx, StackFrameInfo *catch_frame);
26 void (*begin_exception_filter) (MonoException *exc, MonoContext *ctx, MonoContext *orig_ctx);
27 void (*end_exception_filter) (MonoException *exc, MonoContext *ctx, MonoContext *orig_ctx);
28 void (*user_break) (void);
29 void (*debug_log) (int level, MonoStringHandle category, MonoStringHandle message);
30 gboolean (*debug_log_is_enabled) (void);
31 void (*send_crash) (char *json_dump, MonoStackHash *hashes, int pause);
34 typedef struct _DebuggerTlsData DebuggerTlsData;
36 MONO_API void
37 mono_debugger_agent_init (void);
39 MONO_API void
40 mono_debugger_agent_parse_options (char *options);
42 void
43 mono_debugger_agent_stub_init (void);
45 MONO_API gboolean
46 mono_debugger_agent_transport_handshake (void);
48 #endif