Open GoogleCodeExporter opened 8 years ago
Thanks for the bug report.
I did a bit of investigation into this. There are several problems here.
1. The proxy VM primitives (used when calling out to external code in the FFI)
were
not checking that the pointer was valid (or at least non-NULL) before trying to
setting the contents of the structure pointed to by the proxy, leading to the
access
violation you saw.
2. Although the Window code releases its scratchRECT proxy, it doesn't nil it
out, so
that when the SystemMonitor process tries to update the window it tries to
update the
proxy which is no longer valid.
3. The SystemMonitor doesn't cancel its background thread when the window is
closed.
I've fixed the first of these issues locally. That avoids the intermittent
access
violation when you close the SystemMonitor window. Instead it pops up a
StackTraceInspector on the process, which is at least a Smalltalk level error
which
doesn't immediately trash your environment.
I plan to check in some changes to add Aliens support to the VM in the next few
days.
I will check in the proxy fix and load up new binaries and a new image at the
same time.
Note that I did still manage to create an access violation in the
StackTraceInspector
when I clicked on the StandardWindow following the fix. Not sure yet what is
causing
this, but I have seen some similar issues with the StackTraceInspector in other
scenarios, so this may just be a recurrence of one of those. When I finish the
Aliens
work I plan to come back to this. In the meantime, the safest thing to do when a
StackTraceInspector appears is just to close the StackTraceInspector window.
This
seems safe.
Original comment by StephenL...@gmail.com
on 31 Aug 2009 at 1:06
Original comment by StephenL...@gmail.com
on 31 Aug 2009 at 1:08
Original comment by StephenL...@gmail.com
on 31 Aug 2009 at 1:16
I've checked in the fix to the proxy primitives as part of my Aliens port. New
binaries and a new image are available from the download section. This should
fix the
access violation error, but you may get a StackTraceInspector instead. At least
this
leaves you inside the Smalltalk environment rather than terminating the VM.
I'll leave this item as open due to the remaining problems (2 and 3 in my list
above)
for the time being. Can you confirm that this fixes the immediate problem of the
access violation for you?
Original comment by StephenL...@gmail.com
on 15 Sep 2009 at 1:55
Just confirming that this fix is preventing the access violation; many thanks.
Original comment by albanr...@googlemail.com
on 16 Oct 2009 at 7:53
Original issue reported on code.google.com by
albanr...@googlemail.com
on 28 Aug 2009 at 5:35