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...)

Hi,

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.


any 

_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to