[murrayc@murrayclaptop ~]$ valgrind --num-callers=20 --tool=memcheck ./a.out
==5948== Memcheck, a memory error detector for x86-linux.
==5948== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward et al.
==5948== Using valgrind-2.2.0, a program supervision framework for x86-linux.
==5948== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward et al.
==5948== For more details, rerun with: -v
==5948==
==5948== Invalid read of size 4
==5948==    at 0x1B90AA2B: sigc::trackable::callback_list() const (trackable.cc:74)
==5948==    by 0x1B90AA81: sigc::trackable::remove_destroy_notify_callback(void*) const (trackable.cc:61)
==5948==    by 0x8049D3D: sigc::internal::slot_do_unbind::operator()(sigc::trackable const*) const (in /home/murrayc/a.out)
==5948==    by 0x8049D22: sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>::with_type<true, SpecificDialog>::execute_(SpecificDialog const&, sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&) (in /home/murrayc/a.out)
==5948==    by 0x8049CB9: void sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>::operator()<SpecificDialog>(SpecificDialog const&) const (in /home/murrayc/a.out)
==5948==    by 0x8049C85: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, SpecificDialog>(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, SpecificDialog const&) (in /home/murrayc/a.out)
==5948==    by 0x8049C52: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, void, SpecificDialog>(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, sigc::bound_mem_functor0<void, SpecificDialog> const&) (in /home/murrayc/a.out)
==5948==    by 0x8049BC7: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, sigc::bound_mem_functor0<void, SpecificDialog> >(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > const&) (in /home/murrayc/a.out)
==5948==    by 0x8049ABC: void sigc::visit_each_type<sigc::trackable*, sigc::internal::slot_do_unbind, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > >(sigc::internal::slot_do_unbind const&, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > const&) (in /home/murrayc/a.out)
==5948==    by 0x804999A: sigc::internal::typed_slot_rep<sigc::bound_mem_functor0<void, SpecificDialog> >::destroy(void*) (in /home/murrayc/a.out)
==5948==    by 0x1B90AF99: sigc::internal::slot_rep::notify(void*) (slot_base.h:98)
==5948==    by 0x1B90A8B5: sigc::internal::trackable_callback_list::~trackable_callback_list() (stl_list.h:130)
==5948==    by 0x1B90A924: sigc::trackable::notify_callbacks() (trackable.cc:67)
==5948==    by 0x1B90A97E: sigc::trackable::~trackable() (trackable.cc:51)
==5948==    by 0x8049F8F: SpecificDialog::~SpecificDialog() (in /home/murrayc/a.out)
==5948==    by 0x8048E53: SpecificDialog::OnClicked() (in /home/murrayc/a.out)
==5948==    by 0x8049C36: sigc::bound_mem_functor0<void, SpecificDialog>::operator()() const (in /home/murrayc/a.out)
==5948==    by 0x8049B9A: sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> >::operator()() const (in /home/murrayc/a.out)
==5948==    by 0x8049A8A: sigc::internal::slot_call0<sigc::bound_mem_functor0<void, SpecificDialog>, void>::call_it(sigc::internal::slot_rep*) (in /home/murrayc/a.out)
==5948==    by 0x8049056: sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) (in /home/murrayc/a.out)
==5948==  Address 0x23974E5E is not stack'd, malloc'd or (recently) free'd
==5948==
==5948== Process terminating with default action of signal 11 (SIGSEGV)
==5948==  Access not within mapped region at address 0x23974E5E
==5948==    at 0x1B90AA2B: sigc::trackable::callback_list() const (trackable.cc:74)
==5948==    by 0x1B90AA81: sigc::trackable::remove_destroy_notify_callback(void*) const (trackable.cc:61)
==5948==    by 0x8049D3D: sigc::internal::slot_do_unbind::operator()(sigc::trackable const*) const (in /home/murrayc/a.out)
==5948==    by 0x8049D22: sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>::with_type<true, SpecificDialog>::execute_(SpecificDialog const&, sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&) (in /home/murrayc/a.out)
==5948==    by 0x8049CB9: void sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>::operator()<SpecificDialog>(SpecificDialog const&) const (in /home/murrayc/a.out)
==5948==    by 0x8049C85: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, SpecificDialog>(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, SpecificDialog const&) (in /home/murrayc/a.out)
==5948==    by 0x8049C52: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, void, SpecificDialog>(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, sigc::bound_mem_functor0<void, SpecificDialog> const&) (in /home/murrayc/a.out)
==5948==    by 0x8049BC7: void sigc::visit_each<sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind>, sigc::bound_mem_functor0<void, SpecificDialog> >(sigc::internal::limit_derived_target<sigc::trackable*, sigc::internal::slot_do_unbind> const&, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > const&) (in /home/murrayc/a.out)
==5948==    by 0x8049ABC: void sigc::visit_each_type<sigc::trackable*, sigc::internal::slot_do_unbind, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > >(sigc::internal::slot_do_unbind const&, sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> > const&) (in /home/murrayc/a.out)
==5948==    by 0x804999A: sigc::internal::typed_slot_rep<sigc::bound_mem_functor0<void, SpecificDialog> >::destroy(void*) (in /home/murrayc/a.out)
==5948==    by 0x1B90AF99: sigc::internal::slot_rep::notify(void*) (slot_base.h:98)
==5948==    by 0x1B90A8B5: sigc::internal::trackable_callback_list::~trackable_callback_list() (stl_list.h:130)
==5948==    by 0x1B90A924: sigc::trackable::notify_callbacks() (trackable.cc:67)
==5948==    by 0x1B90A97E: sigc::trackable::~trackable() (trackable.cc:51)
==5948==    by 0x8049F8F: SpecificDialog::~SpecificDialog() (in /home/murrayc/a.out)
==5948==    by 0x8048E53: SpecificDialog::OnClicked() (in /home/murrayc/a.out)
==5948==    by 0x8049C36: sigc::bound_mem_functor0<void, SpecificDialog>::operator()() const (in /home/murrayc/a.out)
==5948==    by 0x8049B9A: sigc::adaptor_functor<sigc::bound_mem_functor0<void, SpecificDialog> >::operator()() const (in /home/murrayc/a.out)
==5948==    by 0x8049A8A: sigc::internal::slot_call0<sigc::bound_mem_functor0<void, SpecificDialog>, void>::call_it(sigc::internal::slot_rep*) (in /home/murrayc/a.out)
==5948==    by 0x8049056: sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) (in /home/murrayc/a.out)
==5948==
==5948== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 17 from 1)
==5948== malloc/free: in use at exit: 120 bytes in 6 blocks.
==5948== malloc/free: 8 allocs, 2 frees, 176 bytes allocated.
==5948== For a detailed leak analysis,  rerun with: --leak-check=yes
==5948== For counts of detected errors, rerun with: -v
Segmentation fault
[murrayc@murrayclaptop ~]$
