On 2/16/2012 3:25 PM, Andrew Wiley wrote:
Trouble is that this a few thousand line codebase. I'll see what I can
do about getting a reduced sample.
If I can get a copy I'll look at it when I have some free time. A
reduced case helps tremendously but isn't necessary.
I was mostly wondering whether you've seen anything like this before,
but it sounds like you haven't.
I have a few thoughts about what could be causing it. When the call
history disappears it can be mean that the stack is being corrupted.
Another common symptom of stack corruption is returning to weird
functions.
Are you using -m32 to compile the code? If not can it be compiled with
-m32? The latest MinGW compiler is 64-bit by default and it's possible
some function calls have not been updated resulting in passing 32-bit
value when a 64-bit value is needed or passing 64-bit values to
functions that only want 32-bit values.
As for the extra thread the runtime starts a thread for the GC inside
the initialization routine. It may still exist with GC.disable().
I initially thought it might be related to my use of Fibers, but
removing them seems to have had no effect (although my program is
faster now, so I suppose that's an effect).