1 #ifndef __MONO_JIT_DEBUG_PRIVATE_H__
2 #define __MONO_JIT_DEBUG_PRIVATE_H__
4 #include <mono/metadata/debug-mono-symfile.h>
8 typedef struct _AssemblyDebugInfo AssemblyDebugInfo;
11 MONO_DEBUG_FLAGS_NONE = 0,
12 // Don't run the assembler.
13 MONO_DEBUG_FLAGS_DONT_ASSEMBLE = (1 << 1),
14 // Install the generated *.il files in the assembly dir.
15 MONO_DEBUG_FLAGS_INSTALL_IL_FILES = (1 << 2),
16 // Don't update the *.il files.
17 MONO_DEBUG_FLAGS_DONT_UPDATE_IL_FILES = (1 << 3),
18 // Don't create any new *.il files.
19 MONO_DEBUG_FLAGS_DONT_CREATE_IL_FILES = (1 << 4),
20 // Don't fallback to normal dwarf2.
21 MONO_DEBUG_FLAGS_DONT_FALLBACK = (1 << 5),
22 // Don't precompile image.
23 MONO_DEBUG_FLAGS_DONT_PRECOMPILE = (1 << 6),
24 // Update symbol file on exit.
25 MONO_DEBUG_FLAGS_UPDATE_ON_EXIT = (1 << 7)
29 AssemblyDebugInfo *info;
32 guint32 method_number;
40 const guint8 *code_start;
44 struct _AssemblyDebugInfo {
45 MonoDebugFormat format;
46 MonoDebugHandle *handle;
47 MonoSymbolFile *symfile;
59 GHashTable *wrapper_methods;
64 struct _MonoDebugHandle {
65 MonoDebugFormat format;
71 GHashTable *type_hash;
72 GPtrArray *source_files;
80 guint32 mono_debug_get_type (MonoDebugHandle* debug, MonoClass *klass);
82 void mono_debug_write_stabs (MonoDebugHandle *debug);
84 void mono_debug_write_dwarf2 (MonoDebugHandle *debug);
86 void mono_debug_codegen_breakpoint (guint8 **buf);
88 void mono_debug_codegen_ret (guint8 **buf);
90 MonoDebugMethodInfo *_mono_debug_lookup_method (MonoMethod *method);
92 AssemblyDebugInfo *_mono_debug_get_image (MonoDebugHandle* debug, MonoImage *image);
94 void _mono_debug_generate_line_number (MonoDebugMethodInfo *minfo, guint32 address,
95 guint32 offset, int debug);
97 extern MonoDebugHandle *mono_debug_handle;
98 extern gboolean mono_debug_initialized;
100 #endif /* __MONO_JIT_DEBUG_PRIVATE_H__ */