28 Nov 2019 GC Update
This post is an update on my ongoing GC crash investigation. For an introduction see GC Crash Summary.
Adding some information based on memory from before creating this blog:
As part of my earlier (undocumented) investigations I added some assertions to check that when a Stack Page is being freed the current framePointer
isn’t on it.
It turns out that it happens quite a lot. Most of the time there isn’t any corruption, so my suspicion is that framePointer
isn’t being used during this time. But it also happens right around the time the crash happens, so…
Setting framePointer
to NULL every time the page is freed under it shows… no change to the crash. It looks like the framePointer
isn’t valid at all times, but this doesn’t actually cause a problem.
What would be nice is to modify StackInterpreter>>printCallStack
so that it warns you when framePoiner
is pointing to a free stack page.