projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #811 from criteo/16334-ConcurrentBag
[mono.git]
/
mono
/
metadata
/
mono-debug.c
diff --git
a/mono/metadata/mono-debug.c
b/mono/metadata/mono-debug.c
index 0391408b6d3586c229b0d15edc1ea03b2cf786de..6eff0ecbda320d6a165b4be0582e800fa2fdc057 100644
(file)
--- 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);
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;
}
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);
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);
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->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);
}
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);
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;
}
return jit;
}