Memory leaks in win pidgin 2.5.1?

dave1g at satx.rr.com dave1g at satx.rr.com
Fri Sep 12 15:47:01 EDT 2008


I have written the email below to the developers of winleak:
-----------------------------------------------------------

Message body follows:

Hello,
My name is David. I am currently trying to use your program
to look for possible memory leaks in pidgin [www.pidgin.im]
on windows.  You can follow the progress here: 
[http://www.nabble.com/Memory-leaks-in-win-pidgin-2.5.1--ts19386704.html]
I have a few questions and comments.

1) The stack traces don't seem to actually be ordered by
amount of total memory leaked though it looks like that was
the intention. 

2) I read your philosophy of memory leaks here
[http://winleak.sourceforge.net/#Approach] and I agree that
tpye of leak detection has its place, but was also wondering
if there is a way to run the program from start to finish.
something like "MemoryHooksUI.exe -run pidgin.exe -file
c:\pidginleaks.txt" (arg names to be changed as you please)
 where the memory leaks of the entire program run could be
found. When the function exits winleak would write out its
leak results to the specified file. I tried running a
program from start to finish, but when when you click "stop
monitoring" winleak freezes up. I assume since that pid isn't
in memory anymore.

3) you have the only windows debugging tool that I know of
that can figure out the symbols in gcc compiled programs.
thank you for that!

4) if "2)" is not implemented could it be? if so how can I
help? I am a  programmer as well and would be willing to
spend sometime on it with some guidance.

5) winleak crashes when trying to print out a large leak.
to the log filed specified. (this one isn't real it just
windows  reallocating some heap when a file was opened but
hadn't been closed yet I think) For such large leaks could
we avoid trying to print out the contents of memory, (which
I assume caused the issue) And maybe just print out the
first 100 or 1000 bytes or so. with a message "too large to
print" Here is an example of the end of the log file where
this got printed and then crashed.


--------------------------------
Stack #175, total leak size: 557056
	call stack:
		0x7c919cf3 --> [ntdll] RtlReAllocateHeap
		0x77c2c756 --> [msvcrt] realloc
		0x685d94c2 --> [libglib-2.0-0] g_file_get_contents_utf8
		0x67ce59d1 --> [libpurple] purple_log_common_is_deletable
		0x67ce37dd --> [libpurple] purple_log_read
		0x64a8ebab --> [pidgin] pidgin_log_get_handle
		0x63a43945 --> [libgobject-2.0-0] g_closure_invoke
		0x63a57075 --> [libgobject-2.0-0] g_signal_has_handler_pending
		0x63a5836a --> [libgobject-2.0-0] g_signal_emitv
		0x6049bab7 --> [libgtk-win32-2.0-0] gtk_bin_get_child
		0x6049cb40 --> [libgtk-win32-2.0-0] gtk_binding_set_by_class
		0x6049ce30 --> [libgtk-win32-2.0-0] gtk_binding_set_by_class
		0x6049d084 --> [libgtk-win32-2.0-0]
gtk_bindings_activate_event
		0x60507069 --> [libgtk-win32-2.0-0] gtk_entry_set_text
		0x6058c612 --> [libgtk-win32-2.0-0]
gtk_marshal_VOID__UINT_STRING
		0x63a43945 --> [libgobject-2.0-0] g_closure_invoke
		0x63a56ca6 --> [libgobject-2.0-0] g_signal_has_handler_pending
		0x63a57b7c --> [libgobject-2.0-0] g_signal_emit_valist
		0x63a580b6 --> [libgobject-2.0-0] g_signal_emit
		0x606be404 --> [libgtk-win32-2.0-0] gtk_widget_activate
		0x606d2c02 --> [libgtk-win32-2.0-0]
gtk_window_propagate_key_event
		0x606d8361 --> [libgtk-win32-2.0-0] gtk_window_activate_key
		0x6058c612 --> [libgtk-win32-2.0-0]
gtk_marshal_VOID__UINT_STRING
		0x63a43945 --> [libgobject-2.0-0] g_closure_invoke
		0x63a56ca6 --> [libgobject-2.0-0] g_signal_has_handler_pending
		0x63a57b7c --> [libgobject-2.0-0] g_signal_emit_valist
		0x63a580b6 --> [libgobject-2.0-0] g_signal_emit
		0x606be404 --> [libgtk-win32-2.0-0] gtk_widget_activate
		0x605898ec --> [libgtk-win32-2.0-0] gtk_propagate_event
		0x6058aae1 --> [libgtk-win32-2.0-0] gtk_main_do_event
		0x6b0710fe --> [libgdk-win32-2.0-0]
gdk_event_get_graphics_expose
		0x685e70e7 --> [libglib-2.0-0] g_main_context_dispatch
		0x685e85bb --> [libglib-2.0-0] g_main_context_acquire
		0x685e87aa --> [libglib-2.0-0] g_main_loop_run
		0x6058a02e --> [libgtk-win32-2.0-0] gtk_main
		0x64a90491 --> [pidgin] pidgin_main
		0x0040233c --> [pidgin] 
		0x00402978 --> [pidgin] 
		0x0040124b --> [pidgin] 
		0x004012b8 --> [pidgin] 
		0x7c817067 --> [kernel32] BaseProcessStart
		0x00000000 --> [kernel32] 

Allocation size = 32768:
--------------------------------

Thank you,
David
dave1g at satx.rr.com

--
This message has been sent to you, a registered SourceForge.net user,
by another site user, through the SourceForge.net site.  This message
has been delivered to your SourceForge.net mail alias.  You may reply
to this message using the "Reply" feature of your email client, or
using the messaging facility of SourceForge.net at:
https://sourceforge.net/sendmessage.php?touser=1055565






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/support/attachments/20080912/90e7cf82/attachment-0001.html>


More information about the Support mailing list