#include <errno.h>
#include <string.h>
#include <signal.h>
+#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
+#endif
#include <sys/stat.h>
#include <mono/metadata/metadata.h>
#include <mono/metadata/tabledefs.h>
#include <mono/metadata/class-internals.h>
#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif
#define RANGE_TABLE_CHUNK_SIZE 256
#define CLASS_TABLE_CHUNK_SIZE 256
version = read32(ptr);
ptr += sizeof(guint32);
- if (version != MONO_SYMBOL_FILE_VERSION) {
+ if ((version != MONO_SYMBOL_FILE_VERSION) && (version != MONO_SYMBOL_FILE_COMPATIBILITY_VERSION)) {
if (!in_the_debugger)
g_warning ("Symbol file %s has incorrect version "
"(expected %d, got %ld)", symfile->filename,
return FALSE;
}
+ symfile->version = version;
+
symfile->offset_table = (MonoSymbolFileOffsetTable *) ptr;
symfile->method_hash = g_hash_table_new_full (
for (i = jit->num_line_numbers - 1; i >= 0; i--) {
MonoDebugLineNumberEntry lne = jit->line_numbers [i];
+ if (lne.il_offset < 0)
+ continue;
if (lne.il_offset <= il_offset)
return lne.native_offset;
}
- return -1;
+ return 0;
}
static int
minfo->num_il_offsets = read32(&(me->_num_line_numbers));
minfo->il_offsets = (MonoSymbolFileLineNumberEntry *)
(symfile->raw_contents + read32(&(me->_line_number_table_offset)));
- minfo->num_lexical_blocks = read32(&(me->_num_lexical_blocks));
- minfo->lexical_blocks = (MonoSymbolFileLexicalBlockEntry *)
- (symfile->raw_contents + read32(&(me->_lexical_block_table_offset)));
+
minfo->entry = me;
g_hash_table_insert (symfile->method_hash, method, minfo);