2 * This is a copy of mono/mono/jit/debug-private.h.
4 * Please do *not* modify this copy here, if you need to make changes, do them
5 * in the original and then copy it over again.
7 * All mini-specific stuff is in debug-mini.c.
10 #ifndef __MONO_JIT_DEBUG_PRIVATE_H__
11 #define __MONO_JIT_DEBUG_PRIVATE_H__
13 #include <mono/metadata/debug-mono-symfile.h>
17 typedef struct _AssemblyDebugInfo AssemblyDebugInfo;
20 MONO_DEBUG_FLAGS_NONE = 0,
21 // Don't run the assembler.
22 MONO_DEBUG_FLAGS_DONT_ASSEMBLE = (1 << 1),
23 // Install the generated *.il files in the assembly dir.
24 MONO_DEBUG_FLAGS_INSTALL_IL_FILES = (1 << 2),
25 // Don't update the *.il files.
26 MONO_DEBUG_FLAGS_DONT_UPDATE_IL_FILES = (1 << 3),
27 // Don't create any new *.il files.
28 MONO_DEBUG_FLAGS_DONT_CREATE_IL_FILES = (1 << 4),
29 // Don't fallback to normal dwarf2.
30 MONO_DEBUG_FLAGS_DONT_FALLBACK = (1 << 5),
31 // Don't precompile image.
32 MONO_DEBUG_FLAGS_DONT_PRECOMPILE = (1 << 6),
33 // Update symbol file on exit.
34 MONO_DEBUG_FLAGS_UPDATE_ON_EXIT = (1 << 7)
38 AssemblyDebugInfo *info;
41 guint32 method_number;
49 const guint8 *code_start;
53 struct _AssemblyDebugInfo {
54 MonoDebugFormat format;
55 MonoDebugHandle *handle;
56 MonoSymbolFile *symfile;
68 GHashTable *wrapper_methods;
73 struct _MonoDebugHandle {
74 MonoDebugFormat format;
80 GHashTable *type_hash;
81 GPtrArray *source_files;
89 guint32 mono_debug_get_type (MonoDebugHandle* debug, MonoClass *klass);
91 void mono_debug_write_stabs (MonoDebugHandle *debug);
93 void mono_debug_write_dwarf2 (MonoDebugHandle *debug);
95 void mono_debug_codegen_breakpoint (guint8 **buf);
97 void mono_debug_codegen_ret (guint8 **buf);
99 MonoDebugMethodInfo *_mono_debug_lookup_method (MonoMethod *method);
101 gint32 _mono_debug_address_from_il_offset (MonoDebugMethodInfo *minfo, guint32 il_offset);
103 AssemblyDebugInfo *_mono_debug_get_image (MonoDebugHandle* debug, MonoImage *image);
105 void _mono_debug_generate_line_number (MonoDebugMethodInfo *minfo, guint32 address,
106 guint32 offset, int debug);
108 extern MonoDebugHandle *mono_debug_handle;
109 extern gboolean mono_debug_initialized;
111 #endif /* __MONO_JIT_DEBUG_PRIVATE_H__ */