Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
G
gtkmm
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 29
    • Issues 29
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 4
    • Merge Requests 4
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • GNOME
  • gtkmm
  • Issues
  • #82

Closed
Open
Opened Dec 16, 2020 by Marcin Osypka@marcin.osypka

using Gtk::Switch causes segmentation faults on window close

When you use Gtk::Switch it causes segmentation fault on window close in some situation.

Example code:

example_seg.cpp - causes segmentation fault on window close.

example_ok.cpp - runs ok

Compling

g++ -g example_seg.cpp -o example_seg `pkg-config gtkmm-3.0 --cflags --libs`
g++ -g example_ok.cpp -o example_ok `pkg-config gtkmm-3.0 --cflags --libs`

When defining variables in order:

Gtk::Switch sw;
Gtk::Window w;

as in: example_ok.cpp there is no error.

When defining variables in order:

Gtk::Window  w;
Gtk::Switch sw;

as in: example_seg.cpp the applications crashes with segmentation fault when application window is closed.

gdb bt:

(gdb) bt
#0  0x00007ffff73cbd86 in  () at /usr/lib/libgtk-3.so.0
#1  0x00007ffff6a7a43c in g_cclosure_marshal_VOID__FLAGSv () at /usr/lib/libgobject-2.0.so.0
#2  0x00007ffff6a9898a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#3  0x00007ffff6a98b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#4  0x00007ffff7477fa0 in  () at /usr/lib/libgtk-3.so.0
#5  0x00007ffff74692d8 in  () at /usr/lib/libgtk-3.so.0
#6  0x00007ffff746ef4a in gtk_widget_unparent () at /usr/lib/libgtk-3.so.0
#7  0x00007ffff71de18a in  () at /usr/lib/libgtk-3.so.0
#8  0x00007ffff6a7a7de in g_cclosure_marshal_VOID__OBJECTv () at /usr/lib/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#9  0x00007ffff6a9898a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#10 0x00007ffff6a98b00 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#11 0x00007ffff7235868 in gtk_container_remove () at /usr/lib/libgtk-3.so.0
#12 0x00007ffff7475645 in  () at /usr/lib/libgtk-3.so.0
#13 0x00007ffff6a7d89a in g_object_run_dispose () at /usr/lib/libgobject-2.0.so.0
#14 0x00007ffff7e5fda1 in Gtk::Object::_release_c_instance() () at /usr/lib/libgtkmm-3.0.so.1
#15 0x00007ffff7e084a8 in Gtk::Switch::~Switch() () at /usr/lib/libgtkmm-3.0.so.1
#16 0x00005555555552b6 in main(int, char**) (argc=1, argv=0x7fffffffe288) at example_seg.cpp:7

Other information:

  • OS: Arch Linux 5.9.14-arch1-1
  • gtkmm version: gtkmm3 3.24.3-1
  • gtk vesion: gtk3 1:3.24.24-1
  • gcc version: gcc version 10.2.0
Edited Dec 17, 2020 by Marcin Osypka
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: GNOME/gtkmm#82