July 06, 2018 Memory corruption with COM object | ||||
---|---|---|---|---|
| ||||
I've been staring at this problem the past few hours without making any progress. But I feel like I'm overlooking something obvious.. Using Adam's comhelpers, I've made a JSON plugin for LogParser. However after running for a bit it'll crash with signs of memory corruption. My guess was the GC was collecting things still in use, and disabling the GC does indeed 'fix' the problem. Looking through comhelpers, the code doesn't add a GC root for a created object before handing it off to the C side. I've added root adding and removing, expecting that to fix the problem. However it didn't help. The DLL uses the helper functions like dll_process_attach in DllMain, so druntime is initialized. What would be a good way to figure out why the GC decides to collect objects I'm still holding on to? |
July 09, 2018 Re: Memory corruption with COM object | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rene Zwanenburg | You can enable logging in GC and see what's allocated and collected. |
Copyright © 1999-2021 by the D Language Foundation