+2004-09-28 Zoltan Varga <vargaz@freemail.hu>
+
+ * driver.c mini.h trace.c: Move the setting of the main assembly into
+ a separate function called mono_trace_set_assembly () and call it after
+ actually loading the main assembly. Fixes #66872.
+
2004-09-25 Zoltan Varga <vargaz@freemail.hu>
* mini-amd64.h mini-amd64.c tramp-amd64.c: Allocate trampoline memory
* Need to call this before mini_init () so we can trace methods
* compiled there too.
*/
- mono_jit_trace_calls = mono_trace_parse_options (assembly, trace_options);
+ mono_jit_trace_calls = mono_trace_parse_options (trace_options);
if (mono_jit_trace_calls == NULL)
exit (1);
}
return 2;
}
+ if (trace_options != NULL)
+ mono_trace_set_assembly (assembly);
+
if (enable_debugging)
mono_debug_init_2 (assembly);
/* Tracing */
-MonoTraceSpec *mono_trace_parse_options (MonoAssembly *assembly, char *options);
+MonoTraceSpec *mono_trace_parse_options (char *options);
+void mono_trace_set_assembly (MonoAssembly *assembly);
gboolean mono_trace_eval (MonoMethod *method);
extern void
case MONO_TRACEOP_ALL:
inc = 1; break;
case MONO_TRACEOP_PROGRAM:
- if (method->klass->image == mono_assembly_get_image (trace_spec.assembly))
+ if (trace_spec.assembly && (method->klass->image == mono_assembly_get_image (trace_spec.assembly)))
inc = 1; break;
case MONO_TRACEOP_METHOD:
if (mono_method_desc_match ((MonoMethodDesc *) op->data, method))
}
MonoTraceSpec *
-mono_trace_parse_options (MonoAssembly *assembly, char *options)
+mono_trace_parse_options (char *options)
{
char *p = options;
int size = 1;
int last_used;
int token;
- trace_spec.assembly = assembly;
-
if (*p == 0){
trace_spec.len = 1;
trace_spec.ops = g_new0 (MonoTraceOperation, 1);
return &trace_spec;
}
+void
+mono_trace_set_assembly (MonoAssembly *assembly)
+{
+ trace_spec.assembly = assembly;
+}
+
static int indent_level = 0;
static void indent (int diff) {