libera/#ecl - IRC Chatlog
Search
19:32:57
Partmedia
jackdaniel, I'm back chasing some possibly memory-related crashes in ECL/bdwgc on FreeBSD. I wanted to clarify a few things: 1) is cl_symbols a global array (i.e. in data, not on the heap?) and 2) if so why does stacks_scanner() GC_push_all() cl_symbols?
19:33:30
Partmedia
(for context, the thread I have open with bdwgc is https://github.com/ivmai/bdwgc/issues/415)
19:36:28
jackdaniel
as of registering with gc, without checking - symbols may reference other objects
19:37:53
Partmedia
I see. What seems to be happening is that GC_is_marked() is being called on something inside cl_symbols, but this shouldn't be able to happen because cl_symbols was not allocated on via GC_malloc, no?
19:41:23
jackdaniel
that's not the case, gc may traverse other objects when they are registered (like you've noted yourself)
19:44:54
Partmedia
so what is bdwgc marking when it traverses cl_symbols? in frame 4 where GC_is_marked() is being called on a cl_symbols, the HDR(h) is 0x0 and mark_bit_from_hdr appears to be called on the NULL header
20:03:22
Partmedia
Thanks for the feedback. I'll post what I find on the thread and see if we find anything.