1 #ifndef __MONO_DEBUG_MONO_SYMFILE_H__
2 #define __MONO_DEBUG_MONO_SYMFILE_H__
5 #include <mono/metadata/class.h>
6 #include <mono/metadata/reflection.h>
7 #include <mono/metadata/debug-symfile.h>
9 typedef struct MonoSymbolFile MonoSymbolFile;
10 typedef struct MonoSymbolFileOffsetTable MonoSymbolFileOffsetTable;
11 typedef struct MonoSymbolFileLineNumberEntry MonoSymbolFileLineNumberEntry;
12 typedef struct MonoSymbolFileMethodEntry MonoSymbolFileMethodEntry;
14 /* Keep in sync with OffsetTable in mcs/class/Mono.CSharp.Debugger/MonoSymbolTable.cs */
15 struct MonoSymbolFileOffsetTable {
16 guint32 total_file_size;
17 guint32 source_table_offset;
18 guint32 source_table_size;
19 guint32 method_table_offset;
20 guint32 method_table_size;
21 guint32 line_number_table_offset;
22 guint32 line_number_table_size;
25 struct MonoSymbolFileMethodEntry {
27 guint32 source_file_offset;
28 guint32 line_number_table_offset;
30 guint64 start_address;
34 struct MonoSymbolFileLineNumberEntry {
40 struct MonoSymbolFile {
44 /* Pointer to the mmap()ed contents of the file. */
46 size_t raw_contents_size;
47 MonoSymbolFileOffsetTable *offset_table;
48 GHashTable *method_table;
51 #define MONO_SYMBOL_FILE_VERSION 16
52 #define MONO_SYMBOL_FILE_MAGIC 0x45e82623fd7fa614
54 /* Tries to load `filename' as a debugging information file, if `emit_warnings" is set,
55 * use g_warning() to signal error messages on failure, otherwise silently return NULL. */
56 MonoSymbolFile *mono_debug_open_mono_symbol_file (MonoImage *image,
58 gboolean emit_warnings);
60 typedef MonoDebugMethodInfo * (*MonoDebugGetMethodFunc) (MonoSymbolFile *symbol_file,
64 void mono_debug_update_mono_symbol_file (MonoSymbolFile *symbol_file,
65 MonoDebugGetMethodFunc method_info_func,
68 void mono_debug_close_mono_symbol_file (MonoSymbolFile *symfile);
71 mono_debug_find_source_location (MonoSymbolFile *symfile, MonoMethod *method, guint32 offset,
72 guint32 *line_number);
74 #endif /* __MONO_SYMFILE_H__ */