Hi all,

I modified harmony to make it support ClassRedefine, but I got a segmentation fault when called new to create an instance of the new version class. I changed to interpreter mode, and found the problem happened when executing OPCODE_INVOKESPECIAL.

case OPCODE_INVOKESPECIAL:
// Next line marks the "P_TLS_vmthread->thread_exception" that an exception happened.
                               Opcode_INVOKESPECIAL(frame);
// get_current_thread_exception can not handle the exception properly and cause the segment fault.
                               frame.exc = get_current_thread_exception();

I was using "printf" to locate the bug, but it is too complicated here. But when I use gdb to trace the execution, it cannot follow the function
pointer "(*env)->CallStaticVoidMethod (env, cls, mid, args);" in main.c.

So, how can I use gdb to debug the interpreter? Thanks.


--

Best regard,
Yixun Zhou
[email protected]


Reply via email to