harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Fedotov <alexei.fedo...@gmail.com>
Subject Re: How to use gdb to debug interpreter?
Date Thu, 19 Feb 2009 07:19:04 GMT
Hello YixunZhou

1. Have you read [1]? This is a good start.
2. It's hard to guess where your problem is. It's likely you should
manually help the debugger locating CallStaticVoidMethod source on
your computer.

[1] http://wiki.apache.org/harmony/Debugging%20DRLVM%20with%20GDB%20on%20Linux

On Thu, Feb 19, 2009 at 6:19 AM, YixunZhou <seanny2003@gmail.com> 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
> seanny2003@gmail.com
>
>
>



-- 
С уважением,
Алексей Федотов,
ЗАО <<Телеком Экспресс>>

Mime
View raw message