Thank you. I've read it, but got some confused. I solved the previous problem, and would try
[1] for new one~

Please, specify -XX:+crash_handler in the command line of your java.
It will give you gdb attached to the point of segfault. Then you can
examine post-mortem state of the VM.

Please, also read [1] for tips on debugging various VM parts.

Pavel.

[1] http://harmony.apache.org/subcomponents/drlvm/debugging_VM_and_JIT.html

On Thu, Feb 19, 2009 at 6:19 AM, YixunZhou <[email protected]> wrote:
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]






--

Best regard,
Yixun Zhou
[email protected]


Reply via email to