[runtime] Transition the trampoline code to use memory managers for memory allocation...
[mono-project.git] / mono / mini / debugger-state-machine.h
blob5002467b93264bf37d00760f76467854714c0b4c
1 /**
2 * \file
3 * Types for the debugger state machine and wire protocol
5 * Author:
6 * Alexander Kyte (alkyte@microsoft.com)
8 * (C) 2018 Microsoft, Inc.
11 #ifndef __MONO_DEBUGGER_STATE_MACHINE__
12 #define __MONO_DEBUGGER_STATE_MACHINE__
15 #include <glib.h>
16 #include <mono/metadata/metadata.h>
17 #include <mono/utils/json.h>
18 #include "debugger-agent.h"
20 typedef enum {
21 MONO_DEBUGGER_STARTED = 0,
22 MONO_DEBUGGER_RESUMED = 1,
23 MONO_DEBUGGER_SUSPENDED = 2,
24 MONO_DEBUGGER_TERMINATED = 3,
25 } MonoDebuggerThreadState;
27 void
28 mono_debugger_log_init (void);
30 void
31 mono_debugger_log_free (void);
33 void
34 mono_debugger_log_exit (int exit_code);
36 void
37 mono_debugger_log_add_bp (gpointer key, MonoMethod *method, long il_offset);
39 void
40 mono_debugger_log_remove_bp (gpointer key, MonoMethod *method, long il_offset);
42 void
43 mono_debugger_log_command (const char *command_set, const char *command, guint8 *buf, int len);
45 void
46 mono_debugger_log_event (DebuggerTlsData *tls, const char *event, guint8 *buf, int len);
48 void
49 mono_debugger_log_bp_hit (DebuggerTlsData *tls, MonoMethod *method, long il_offset);
51 void
52 mono_debugger_log_resume (DebuggerTlsData *tls);
54 void
55 mono_debugger_log_suspend (DebuggerTlsData *tls);
57 #if 0
58 #define DEBUGGER_STATE_MACHINE_DEBUG(level, ...)
59 #else
60 #define DEBUGGER_STATE_MACHINE_DEBUG(level, ...) g_async_safe_printf(__VA_ARGS__)
61 #endif
63 void
64 mono_debugger_state (JsonWriter *writer);
66 char *
67 mono_debugger_state_str (void);
69 #endif // __MONO_DEBUGGER_STATE_MACHINE__