GC issue? List.pool overwritten by allocated object

Richard (Rikki) Andrew Cattermole richard at cattermole.co.nz
Mon May 12 18:27:33 UTC 2025


On 13/05/2025 6:22 AM, Denis Feklushkin wrote:
>     Try using ldc's address sanitizer to see if that finds something.
> 
> Nothing, sanitizer only highlights point where is pointer to pool is broken:
> 
> 
>   AddressSanitizer:DEADLYSIGNAL
> 
> ==36969==ERROR: AddressSanitizer: SEGV on unknown address 0x000100000006 
> (pc 0x55c3ba20eac3 bp 0x523000005500 sp 0x7ffd7cb0fcf0 T0) ==36969==The 
> signal is caused by a READ memory access. #0 0x55c3ba20eac3 in 
> _D4core8internal2gc4impl12conservativeQw3Gcx10smallAllocMFNbmKmkxC8TypeInfoZPv (/home/denizzz/Dev/pukan3D/pukan+0x33fac3) (BuildId: 25246214f82ed318a32cc136c8e965179f4dcad3)
> 
> 0x000100000006 is garbage value, placed by wrong allocation at 
> swapchain.d:92: s = new SyncFramesInFlight(device, commandBuffers[i]); 
> (if used debug configuration described in origin message):

This is useful information, now you can minify your code to what causes it.

I suggest throwing dustmite at it, and looking for that segfault.

https://github.com/CyberShadow/DustMite



More information about the Digitalmars-d mailing list