Re: [gtkmm] weird segfault


> Rui Lopes wrote:
>>Hello all,
>>I have this code,


>>but it segfauls; here is the backtrace:


> It looks to me like the RefPtr is keeping the Display object alive until
>  the main() routine is finished, even though the X11 connection is
> destroyed before returning from run(). So when the Display object is
> finally destroyed, the underlying GTK+ routines trip over something (a
> stale pointer, perhaps) and fall down.
> You could try clearing your RefPtr before entering run() to avoid this.
> Presumably you won't need it after that point?
> ..mj

this was only a small example; it doesn't matter where I put that RefPtr,
for example with this,

int main(int argc, char *argv[])
  Gtk::Main kit(argc, argv);
  Gtk::Window window;

  { // note this extra compound block.
    Glib::RefPtr<Gdk::Display> refDisplay = Gdk::Display::get_default();

  return 0;

this crashes in the destructor before reaching run.

btw, i'm not seeing why you have suggested the destruction of the RefPtr
before entering run().

-- Rui Lopes

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]