DebugMethodInfo *priv = minfo->user_data;
int i;
- if (!minfo->jit->line_numbers)
+ if (!minfo->jit || !minfo->jit->line_numbers)
return;
// Start of statement program
}
static void
-write_line_numbers (MonoDebugHandle *debug)
+write_method_lines_func_1 (gpointer key, gpointer value, gpointer user_data)
{
- GList *tmp;
+ AssemblyDebugInfo *info = (AssemblyDebugInfo *) value;
+
+ g_hash_table_foreach (info->methods, write_method_lines_func, user_data);
+}
+static void
+write_line_numbers (MonoDebugHandle *debug)
+{
/* State machine registers. */
int i;
dwarf2_write_byte (debug->f, 0);
dwarf2_write_label (debug->f, "DL3");
- for (tmp = debug->info; tmp; tmp = tmp->next) {
- AssemblyDebugInfo *info = (AssemblyDebugInfo*)tmp->data;
-
- g_hash_table_foreach (info->methods, write_method_lines_func, debug);
- }
+ g_hash_table_foreach (debug->images, write_method_lines_func_1, debug);
dwarf2_write_label (debug->f, "debug_line_e");
}
write_method_dwarf2 (user_data, value);
}
+static void
+write_method_func_1 (gpointer key, gpointer value, gpointer user_data)
+{
+ AssemblyDebugInfo *info = (AssemblyDebugInfo *) value;
+
+ g_hash_table_foreach (info->methods, write_method_func, user_data);
+}
+
void
mono_debug_write_dwarf2 (MonoDebugHandle *debug)
{
- GList *tmp;
-
if (!(debug->f = fopen (debug->filename, "w"))) {
g_warning ("Can't create dwarf file `%s': %s", debug->filename, g_strerror (errno));
return;
dwarf2_write_ref4 (debug->f, "debug_lines_b");
// Methods
- for (tmp = debug->info; tmp; tmp = tmp->next) {
- AssemblyDebugInfo *info = (AssemblyDebugInfo*)tmp->data;
-
- g_hash_table_foreach (info->methods, write_method_func, debug);
- }
+ g_hash_table_foreach (debug->images, write_method_func_1, debug);
// Derived types
g_hash_table_foreach (debug->type_hash, write_class, debug);