2009-02-03 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / dis / dump.c
index a583904f7be919ff79c161fe8635a34994e7e41d..ba2354d5fef582a649cad118d0d94c6fd252f265 100644 (file)
@@ -539,7 +539,7 @@ dump_table_module (MonoImage *m)
 {
        MonoTableInfo *t = &m->tables [MONO_TABLE_MODULE];
        int i;
-       fprintf (output, "ModuleRef Table (1..%d)\n", t->rows);
+       fprintf (output, "Module Table (1..%d)\n", t->rows);
 
        for (i = 0; i < t->rows; i++){
                guint32 cols [MONO_MODULE_SIZE];
@@ -597,7 +597,7 @@ dump_table_method (MonoImage *m)
                sigblob = mono_metadata_blob_heap (m, cols [MONO_METHOD_SIGNATURE]);
                mono_metadata_decode_blob_size (sigblob, &sigblob);
                method = mono_metadata_parse_method_signature_full (m, method_container ? method_container : type_container, i, sigblob, &sigblob);
-               sig = dis_stringify_method_signature (m, method, i, (MonoGenericContext *) (method_container ? method_container : type_container), FALSE);
+               sig = dis_stringify_method_signature (m, method, i, method_container ? method_container : type_container, FALSE);
                fprintf (output, "%d: %s (param: %d)\n", i, sig, cols [MONO_METHOD_PARAMLIST]);
                g_free (sig);
                mono_metadata_free_method_signature (method);
@@ -1209,6 +1209,38 @@ dump_stream_blob (MonoImage *m)
        fprintf (output, "\n");
 }
 
+void
+dump_stream_strings (MonoImage *m)
+{
+       guint32 i;
+
+       fprintf (output, "Strings heap contents\n");
+
+       for (i = 0; i < m->heap_strings.size; ) {
+               const char *str = mono_metadata_string_heap (m, i);
+               fprintf (output, "%02x: \"%s\"\n", i, str);
+               i += strlen (str) + 1;
+       }
+}
+
+void
+dump_stream_us (MonoImage *m)
+{
+       guint32 i;
+
+       fprintf (output, "User Strings heap contents\n");
+
+       for (i = 0; i < m->heap_us.size; ) {
+               const char *us_ptr = mono_metadata_user_string (m, i);
+               int len = mono_metadata_decode_blob_size (us_ptr, (const char**)&us_ptr);
+
+               char *str = get_encoded_user_string_or_bytearray ((const guchar*)us_ptr, len);
+               fprintf (output, "%02x: %s\n", i, str);
+               g_free (str);
+               i += len + 1;
+       }
+}
+
 void
 dump_table_standalonesig (MonoImage *m)
 {