5 #ifndef __MONO_DEBUGGER_AGENT_H__
6 #define __MONO_DEBUGGER_AGENT_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
{
16 void (*parse_options
) (char *options
);
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
;
37 mono_debugger_agent_init (void);
40 mono_debugger_agent_parse_options (char *options
);
43 mono_debugger_agent_stub_init (void);
46 mono_debugger_agent_transport_handshake (void);