I'm having some memory issues with my application and am trying to track down what the issue is. When I run the app in gdb with the flags G_SLICE=debug-blocks I get the message below, however GDB can't give me any info about this block in terms of a symbol. Am I right in thinking that this indicates that glib tried to freed a block that was already freed by something else?
Is there anyway to determine what code originally allocated that address, is something like valgrind required here or are there any gtk/glib flags that can help with this?
GSlice: MemChecker: attempt to release non-allocated block: 0x7f0deb76e200 size=32
For context, I'm writing a VTE based terminal emulator. The user can control the amount of transparency by moving a Scale back and forth and the terminal updates this in real time. In terms of code, it generates a lot of RGBA objects but I don't think it's related to that as I tried reproducing the same scenario in a small app with no luck. Also, I have users that report similar issues but aren't futzing with the transparency though it is related to the dialog this is done.
I could mitigate it by reducing the amount of RGBA classes I create but I think this is really just obscuring the problem so would much rather find out what the issue is. I suspect creating a lot of RGBA is just forcing more memory to be allocated and hitting the problematic memory address sooner.