Issues with debugging GC-related crashes #2

Johannes Pfau nospam at example.com
Thu Apr 19 07:04:14 UTC 2018


Am Thu, 19 Apr 2018 06:33:27 +0000 schrieb Johannes Pfau:

> 
> Generally if you produced a crash in gdb it should be reproducible if
> you restart the program in gdb. So once you have a crash, you should be
> able to restart the program and look at the _dso_registry and see the
> same addresses somewhere. If you then think you see memory corruption
> somewhere you could also use read or write watchpoints.
> 
> But just to be sure: you're not adding any GC ranges manually, right?
> You could also try to compare the GC range to the address range layout
> in /proc/$PID/maps .

Of course, if this is a GC pool / heap range adding breakpoints in the 
sections code won't be useful. Then I'd try to add a write watchpoint on 
pooltable.minAddr / maxAddr, restart the programm in gdb and see where / 
why the values are set.

-- 
Johannes


More information about the Digitalmars-d mailing list