[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] JIT crashes due non-executable memory

From: Holger Hans Peter Freyther
Subject: Re: [Help-smalltalk] JIT crashes due non-executable memory
Date: Sat, 8 Jun 2013 22:02:16 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Sat, Jun 08, 2013 at 07:32:30PM +0200, Holger Hans Peter Freyther wrote:

> it is crashing inside the Delay process.. and after a lot of stepi
> inside the GDB tui I am at the point where unwind_context is restoring
> a wrong native_ip and it is jumping somewhere else. This means that
> at some point the ic->native_ip is wrong (or I don't understand how
> the ipOffset is set inside the context...). (or the IC is read from
> somewhere wrong/after a GC...)


what appears to happen is that the translated method is freed but it
is still inside the method context (i removed the xfree for the
method_entry and things started to change, sometimes even working)

I think the following could happen:

1.) The first time Delay class>>#runDelayProcess will set the
  oop->flags F_XLAT_REACHABLE (or not??)
2.) ??? (something to the oop->flags or a replacement method is installed)
3.) The method will be discarded... (two GC runs or such)
4.) The code returns to a methodOop that has not been jitted yet. If
    I can trust my printf debuggung I return to a runDelayProcess that has
    not even be jitted..

So I think that the oop will be swept when it should not? Any idea on
how to continue to debug this? Tracing all flag assignments with hw
watchpoints is a bit... difficult.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]