harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From YixunZhou <seanny2...@gmail.com>
Subject How to use gdb to debug interpreter?
Date Thu, 19 Feb 2009 03:19:06 GMT
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
seanny2003@gmail.com



Mime
View raw message