GC is reclaiming live objects

Walter Bright newshound2 at digitalmars.com
Thu Oct 11 03:39:00 PDT 2012


On 10/10/2012 9:43 AM, deadalnix wrote:
> And I don't use C stuff in the application. I don't explicitly free anything and
> use the last version of D.
>
> Obviously, the problem isn't easy to reproduce in a small program, But I get
> consistent crash in some test cases.
>
> So, What am I supposed to do now to investigate the issue ?

These kinds of issues can be hard to debug.

First off, this is the first report I've heard in years that the GC is 
reclaiming live objects. So, my first thought is some other memory corruption is 
happening in your program.

My second thought is to make sure all the compiler checks are turned on - don't 
use -release. Try to use @safe.

The gc has several debugging versions you can uncomment. These can generate a 
blizzard of data, but sometimes that's the last resort.

Make sure you don't have escaping references to a function's stack frame. These 
aren't detected by the compiler/runtime, and will cause horrible corruption 
problems.

Compiling and running your program under a different operating system can often 
flush out corruption problems. Try valgrind on Linux.



More information about the Digitalmars-d mailing list