* culture-info.h: Make defines more consistent, add calendar data
[mono.git] / mono / metadata / mono-debug-debugger.c
index b3d00a51a7ade9682dcc96bb31925237429a757e..f8f6a8f433941f20a97fea576498c6f37255c092 100644 (file)
@@ -120,6 +120,7 @@ mono_debugger_initialize (MonoDomain *domain)
        g_assert (!mono_debugger_initialized);
 
        InitializeCriticalSection (&debugger_lock_mutex);
+       mono_debugger_initialized = TRUE;
 
        mono_debugger_lock ();
 
@@ -136,7 +137,6 @@ mono_debugger_initialize (MonoDomain *domain)
        class_info_table = g_hash_table_new (g_direct_hash, g_direct_equal);
 
        mono_debugger_symbol_table = symbol_table;
-       mono_debugger_initialized = TRUE;
 
        mono_debugger_unlock ();
 }
@@ -1213,3 +1213,34 @@ mono_debugger_lookup_type (const gchar *type_name)
        mono_debugger_unlock ();
        return 0;
 }
+
+gint32
+mono_debugger_lookup_assembly (const gchar *name)
+{
+       MonoAssembly *assembly;
+       MonoImageOpenStatus status;
+       int i;
+
+       mono_debugger_lock ();
+
+ again:
+       for (i = 0; i < mono_debugger_symbol_table->num_symbol_files; i++) {
+               MonoDebuggerSymbolFile *symfile = mono_debugger_symbol_table->symbol_files [i];
+
+               if (!strcmp (symfile->image_file, name)) {
+                       mono_debugger_unlock ();
+                       return i;
+               }
+       }
+
+       assembly = mono_assembly_open (name, &status);
+
+       if (status != MONO_IMAGE_OK) {
+               g_warning (G_STRLOC ": Cannot open image `%s'", name);
+               mono_debugger_unlock ();
+               return -1;
+       }
+
+       must_reload_symtabs = TRUE;
+       goto again;
+}