help-smalltalk
[Top][All Lists]
Advanced

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

Re: [Help-smalltalk] JIT and Debugger/DebugTools


From: Holger Hans Peter Freyther
Subject: Re: [Help-smalltalk] JIT and Debugger/DebugTools
Date: Sun, 22 Dec 2013 22:19:08 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Sun, Dec 22, 2013 at 02:34:56PM +0100, Holger Hans Peter Freyther wrote:
> Hi,

> the only regression/issue I have with the JIT is inside the DebugTools
> and e.g. the DebuggerTest>>#testCurrentLine. It happens with aContext ip
> pointing to an ip that is way beyond the bytecode of the block.

I looked a bit more, tried to remember how the jit and process changes
work and I do hit:

        if UNCOMMON (!IS_NIL (switch_to_process))
          {
            change_process_context (switch_to_process);
            if UNCOMMON (single_step_semaphore)
              {
                printf("SINGLE STEP...%p %d %d %d\n", thisContext,
                        TO_INT(thisContext->native_ip), ip,
                        TO_INT(thisContext->ipOffset));
                _gst_async_signal (single_step_semaphore);

I stepped through the emitted code for the interrupt check and I do
see that _gst_ip is not 48 at that time and the thisContext->ipOffset
is != FROM_INT(48).


> An instance of BlockContext
>   parent: [] in Process>>onBlock:at:suspend: (Process.st:412)
>   nativeIP: 69535906
>   ip: 48

I am puzzled of where it is set. So far I will have a look at the
interrupt checks and see if _gst_this_context_oop is set correctly.


anyone else got an idea of what I should look at/verify?



reply via email to

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