2002-09-21 Martin Baulig <martin@gnome.org>
authorMartin Baulig <martin@novell.com>
Fri, 20 Sep 2002 23:13:33 +0000 (23:13 -0000)
committerMartin Baulig <martin@novell.com>
Fri, 20 Sep 2002 23:13:33 +0000 (23:13 -0000)
* debug-mono-symfile.c: Create type table.

svn path=/trunk/mono/; revision=7664

mono/metadata/ChangeLog
mono/metadata/debug-mono-symfile.c
mono/metadata/debug-mono-symfile.h

index 3eee3abb96977ee06557d1a8802278ffc5bea8d0..0b799d947f84a4e5e485c6c97903a279dde79d00 100644 (file)
@@ -1,3 +1,7 @@
+2002-09-21  Martin Baulig  <martin@gnome.org>
+
+       * debug-mono-symfile.c: Create type table.
+
 2002-09-20  Martin Baulig  <martin@gnome.org>
 
        * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
index 19b21e4adb7dda3ca144a4adf905f43abe6fa8b9..006efa824454a46a0f43ca9ca8f0852226ca4f40 100644 (file)
@@ -79,6 +79,9 @@ load_symfile (MonoSymbolFile *symfile)
        priv->offset_table = (MonoSymbolFileOffsetTable *) ptr;
        symfile->address_table_size = priv->offset_table->address_table_size;
 
+       symfile->type_table_size = symfile->_priv->offset_table->type_count * sizeof (guint8 *);
+       symfile->type_table = g_malloc0 (symfile->type_table_size);
+
        /*
         * Read method table.
         *
@@ -706,6 +709,9 @@ create_symfile (MonoSymbolFile *symfile, gboolean emit_warnings)
 
        symfile->raw_contents = ptr;
 
+       symfile->type_table_size = symfile->_priv->offset_table->type_count * sizeof (guint8 *);
+       symfile->type_table = g_malloc0 (symfile->type_table_size);
+
        //
        // Load line number table.
        //
index b4ce2795112c38d67b8c18d1c75b872ff99271c3..2f48e0db0882b4bff8139105f2e28c30c5ab28de 100644 (file)
@@ -27,6 +27,8 @@ struct MonoSymbolFileOffsetTable {
        guint32 method_table_size;
        guint32 line_number_table_offset;
        guint32 line_number_table_size;
+       guint32 local_variable_table_offset;
+       guint32 local_variable_table_size;
        guint32 type_count;
        guint32 type_index_table_offset;
        guint32 type_index_table_size;
@@ -42,6 +44,7 @@ struct MonoSymbolFileMethodEntry {
        guint32 num_locals;
        guint32 num_line_numbers;
        guint32 type_index_table_offset;
+       guint32 local_variable_table_offset;
        guint32 source_file_offset;
        guint32 line_number_table_offset;
        guint32 address_table_offset;
@@ -136,11 +139,14 @@ struct MonoSymbolFile {
        /* Pointer to the malloced string table. */
        guint8 *string_table;
        guint32 string_table_size;
+       /* Pointer to the malloced type table. */
+       guint8 **type_table;
+       guint32 type_table_size;
        /* Private. */
        MonoSymbolFilePriv *_priv;
 };
 
-#define MONO_SYMBOL_FILE_VERSION               24
+#define MONO_SYMBOL_FILE_VERSION               25
 #define MONO_SYMBOL_FILE_MAGIC                 0x45e82623fd7fa614
 
 MonoSymbolFile *