Re: [Ekiga-devel-list] I need brains!
- From: Julien Puydt <jpuydt free fr>
- To: Ekiga development mailing list <ekiga-devel-list gnome org>
- Subject: Re: [Ekiga-devel-list] I need brains!
- Date: Mon, 17 Nov 2008 20:30:26 +0100
Julien Puydt a écrit :
the crash-on-exit bug which cripples ekiga since too long.
I have no clue why. Help!
If :
- I compile out evolution-data-server ;
- I disconnect forcefully the GUI from the engine in the
roster&addressbook windows (which makes ekiga unusable...) ;
- I put back the memory management (make gmref.cpp call delete again) ;
then I don't get crashes.
This makes me wonder if there aren't *two* crashers, helping each other
escape a proper fix.
Here is the backtrace from the evolution crash :
#0 0x00000500 in ?? ()
#1 0xb7002dbb in sigc::trackable::notify_callbacks() ()
from /usr/lib/libsigc-2.0.so.0
#2 0xb7002e2d in sigc::trackable::~trackable() ()
from /usr/lib/libsigc-2.0.so.0
#3 0xb700287a in sigc::signal_base::~signal_base() ()
from /usr/lib/libsigc-2.0.so.0
#4 0x0817d11f in ~Book (this=0x832ee00, __vtt_parm=0x824ec58)
at /usr/include/sigc++-2.0/sigc++/signal.h:1663
#5 0x081ec5a3 in ~BookImpl (this=0x832ee00, __vtt_parm=0x824ec54)
at ../../../../lib/engine/addressbook/skel/book-impl.h:157
#6 0x081e93e1 in ~Book (this=0x832ee00)
at ../../../../lib/engine/addressbook/evolution/evolution-book.cpp:220
#7 0x080f8b88 in gmref_dec (obj=0xb673e160) at gmref.cpp:60
#8 0x081c5f41 in ~gmref_ptr (this=0x832fe98)
at ../../../../lib/gmref/gmref.h:207
#9 0x081c63f2 in sigc::internal::typed_slot_rep<sigc::bind_functor<0,
sigc::bound_const_mem_functor2<void, sigc::signal2<void,
gmref_ptr<Ekiga::Book>, gmref_ptr<Ekiga::Contact>, sigc::nil>,
gmref_ptr<Ekiga::Book> const&, gmref_ptr<Ekiga::Contact> const&>,
gmref_ptr<Evolution::Book>, sigc::nil, sigc::nil, sigc::nil, sigc::nil,
sigc::nil, sigc::nil> >::destroy (data=0x832fe68)
at /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:51
#10 0xb700335d in sigc::internal::slot_rep::notify(void*) ()
from /usr/lib/libsigc-2.0.so.0
#11 0xb7002d5a in
sigc::internal::trackable_callback_list::~trackable_callback_list() ()
from /usr/lib/libsigc-2.0.so.0
#12 0xb7002dbb in sigc::trackable::notify_callbacks() ()
from /usr/lib/libsigc-2.0.so.0
#13 0xb7002e2d in sigc::trackable::~trackable() ()
from /usr/lib/libsigc-2.0.so.0
#14 0xb700287a in sigc::signal_base::~signal_base() ()
from /usr/lib/libsigc-2.0.so.0
#15 0x081c8fd8 in Ekiga::SourceImpl<Evolution::Book>::~SourceImpl() ()
#16 0x081c59ad in ~Source (this=0x82c3b58)
at
../../../../lib/engine/addressbook/evolution/evolution-source.cpp:160
#17 0x080f8b88 in gmref_dec (obj=0xb673e160) at gmref.cpp:60
#18 0x080d6ff1 in ~gmref_ptr (this=0x83301e0) at ../lib/gmref/gmref.h:207
#19 0x08129d11 in ~ServiceCore (this=0x828bb78)
at /usr/include/c++/4.3/ext/new_allocator.h:118
#20 0x080f6c18 in GnomeMeeting::Exit (this=0x8253760) at ekiga.cpp:119
#21 0x080e3801 in main (argc=0, argv=0x8618274, envp=Cannot access
memory at address 0x20
) at gui/main.cpp:4557
What does that mean? Well, at shutdown, we free the Ekiga::ServiceCore,
which frees the Evolution::Source, which frees a signal, which frees a
gmref_ptr (which was there because a sigc::bind was connected to the
signal), which frees an Evolution::Book, which frees a signal... and
there it crashes, and I don't know exactly why (!).
What I find quite startling is that the LDAP code and the call-history
code, which are organized like the EDS code... doesn't crash! So the
problem has to be something pretty unique to the EDS code...
Before you ask : that evolution crash does go away if I comment out the
memory freeing in gmref.cpp... so it may share a common root with the
crash in the GUI code.
Help, I need somebody! Help, not just anybody! Help, you know I need
someone, help!
Snark
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]