Hi;

On 30 July 2016 at 20:00, Norman Goldstein <norm...@telus.net> wrote:

> It seems the debug version is less confusing for valgrind, or
>
>    *** Does the debug code actually present different source code to the
> compiler?

Yes; debugging code enables various code paths that are meant to make
it easier for developers to debug GLib and GTK+.

> You mention, below, that I may need to add a few suppressions, but before
> adding another suppression, I got this far with the debug info:
>
> In /usr/src/debug/glib-2.48.1/gio/gdbusproxy.c
>
> LoadPropertiesOnNameOwnerChangedData *data;
> data = g_new0 (LoadPropertiesOnNameOwnerChangedData, 1);
> data->name_owner = g_strdup (new_owner); //<=== line 1391 Leak
>
> So it appears that data->name_owner is not being freed.

It is, if you look at the code of on_name_owner_changed_get_all_cb:

https://git.gnome.org/browse/glib/tree/gio/gdbusproxy.c#n1246

If the operation was not cancelled, the name_owner string is "stolen"
and stored inside the proxy instance structure; the name_owner field
is going to be freed when the proxy instance is finalized.

If the operation was cancelled, the name_owner string is freed.

Ciao,
 Emmanuele.

> On 30/07/16 06:58 AM, jcup...@gmail.com wrote:
>>
>> You need to set the malloc routines to use the real system malloc;
>>
>>          export G_DEBUG=gc-friendly
>>          export G_SLICE=always-malloc
>>
>> I have this suppressions file:
>>
>>           https://github.com/jcupitt/libvips/blob/master/libvips.supp
>>
>> That's for a gobject-based library, you might need to add a few things
>> to it. Run your program with:
>>
>>           valgrind --suppressions=libvips.supp --leak-check=yes
>> ./myprogram
>>
>> And hopefully you'll see "0 bytes definitely lost".
>>
>> John
>>
>>
>>
>>
>> On 28 July 2016 at 17:18, Norman Goldstein <norm...@telus.net> wrote:
>>>
>>> I'd like to understand how to confirm a potential memory leak in gtk3.
>>> Valgrind shows a definite leak, and "top" shows a steadily increasing
>>> resident set size (RES).  However, as I have come to understand, due to
>>> how
>>> gtk/glib uses slices for memory management, and how the main loop of gtk
>>> plays a part, things are not as straightforward as I have just outlined.
>>> Is
>>> there a definitive guide, "How to confirm a memory leak in GTK"?  I have
>>> only seen various relevant pages on the net.
>>> _______________________________________________
>>> gtk-app-devel-list mailing list
>>> gtk-app-devel-list@gnome.org
>>> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
>
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list



-- 
https://www.bassi.io
[@] ebassi [@gmail.com]
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to