[Mono-devel-list] Assertion failed when compiling Cuyahoga on amd64
Willibald Krenn
Willibald.Krenn at gmx.at
Fri Mar 11 09:19:34 EST 2005
Marek Habersack schrieb:
> ** ERROR **: file tramp-amd64.c: line 98 (amd64_magic_trampoline): assertion
> failed: (*vtable_slot)
> aborting...
>
> lenghty output of gdb bt and bt full is attached.
Interesting, your vtable_slot addr is identical with ®s[RAX]..
Please let me know if I
> can do anything to help further diagnose the problem,
Don't know if Zoltan has already fixed the problem, but it would be
interesting to see the output of following code (add it after the
"vtable_slot = mono_arch_get_vcall_slot_addr (code, (gpointer*)regs);" line)
if (vtable_slot && !*vtable_slot) {
char* mn = mono_method_full_name (m, TRUE);
g_print ("MAGIC: FATAL SLOT == NULL when compiling %s\n",mn);
/*do a disasm of the caller*/
g_print ("MAGIC: CODE %p\n",(gpointer) code);
mono_disassemble_code (code - 20, 20, "CODE-20..0");
if ((tramp != (guint8*)-1) && tramp)
mono_disassemble_code (tramp, 34, "STUB");
else
g_print ("MAGIC: Stub invalid %p\n", (gpointer) tramp);
MonoJitInfo *ji = mono_jit_info_table_find (mono_domain_get (), addr);
if (ji) {
g_print ("MAGIC: JI: (start: %p, len: %i , neutr: %i) %s\n",
ji->code_start,
ji->code_size, ji->domain_neutral);
mono_disassemble_code (ji->code_start, ji->code_size, mn);
}
g_free (mn);
/*see if we can get the object: Potentially this can SIGSEGV*/
int this_reg = AMD64_RDI;
if (!mono_method_signature (m)->ret->byref && MONO_TYPE_ISSTRUCT
(mono_method_signature (m)->ret))
this_reg = AMD64_RSI;
MonoObject *obj = (MonoObject *) regs [this_reg];
MonoVTable *table = obj->vtable;
g_print ("MAGIC: 'this' object of class: %s\n", table->klass->name);
g_print (" MaxIntf: %i Rank: %i Remote: %i Init:
%i\n",(int)table->max_interface_id,
(int) table->rank, (int) table->remote, (int) table->initialized);
g_print ("MAGIC: Slots %i VT: %i\n", (int) table->klass->vtable_size,
(int) table->klass->valuetype);
g_assert_not_reached ();
}
Willi
More information about the Mono-devel-list
mailing list