X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmono-debug.c;h=6eff0ecbda320d6a165b4be0582e800fa2fdc057;hb=2211e3a5d02ca546fdbad2033b8b3d0c817c97c3;hp=0391408b6d3586c229b0d15edc1ea03b2cf786de;hpb=880bea0e62f7b4d97eab34fde65c5121e706ea72;p=mono.git diff --git a/mono/metadata/mono-debug.c b/mono/metadata/mono-debug.c index 0391408b6d3..6eff0ecbda3 100644 --- a/mono/metadata/mono-debug.c +++ b/mono/metadata/mono-debug.c @@ -198,7 +198,10 @@ lookup_data_table (MonoDomain *domain) MonoDebugDataTable *table; table = g_hash_table_lookup (data_table_hash, domain); - g_assert (table); + if (!table) { + g_error ("lookup_data_table () failed for %p\n", domain); + g_assert (table); + } return table; } @@ -649,6 +652,12 @@ mono_debug_add_method (MonoMethod *method, MonoDebugMethodJitInfo *jit, MonoDoma for (i = 0; i < jit->num_locals; i++) write_variable (&jit->locals [i], ptr, &ptr); + *ptr++ = jit->gsharedvt_info_var ? 1 : 0; + if (jit->gsharedvt_info_var) { + write_variable (jit->gsharedvt_info_var, ptr, &ptr); + write_variable (jit->gsharedvt_locals_var, ptr, &ptr); + } + size = ptr - oldptr; g_assert (size < max_size); total_size = size + sizeof (MonoDebugMethodAddress); @@ -824,6 +833,8 @@ mono_debug_free_method_jit_info (MonoDebugMethodJitInfo *jit) g_free (jit->this_var); g_free (jit->params); g_free (jit->locals); + g_free (jit->gsharedvt_info_var); + g_free (jit->gsharedvt_locals_var); g_free (jit); } @@ -868,6 +879,13 @@ mono_debug_read_method (MonoDebugMethodAddress *address) for (i = 0; i < jit->num_locals; i++) read_variable (&jit->locals [i], ptr, &ptr); + if (*ptr++) { + jit->gsharedvt_info_var = g_new0 (MonoDebugVarInfo, 1); + jit->gsharedvt_locals_var = g_new0 (MonoDebugVarInfo, 1); + read_variable (jit->gsharedvt_info_var, ptr, &ptr); + read_variable (jit->gsharedvt_locals_var, ptr, &ptr); + } + return jit; }