GIMP 2.10.36 crashing on Arch-Linux (when quitting, after some image manipulation)
Environment/Versions
- GIMP version: 2.10.36
- Package: Original binary (2.10.36-5) and self-compiled (via ABS)
- Operating System: Arch-Linux
Description of the bug
Crash occurs not always, but after some image manipulation of larger images, it is very often crashing. My worflow is often to use overwrite (often I use a keyboard-shortcut for this), and when closing (even though just written) I will be asked if I want to overwrite. I then select Discard changes. (Why I should save changes after just saving, I don't know, but I digress here.)
When quitting, gimp does not immediately crash, but after some seconds )maybe thats the crush-debug startup that needs time). (As far as I remember, the crash also happens independently of discarding-changes after saving.)
I also had the problem with small images, but it seems to happen more often when the files are big. Maybe that's just because they need more editing or there is just more time to run into problems. But I also had sometimes crashes after working on small images (but it's harder to reproduce).
Reproduction
Is the bug reproducible? This problem occurs often, not always.
Reproduction steps:
- open one or more files (size of 1000x1000 pixels help in reproducing).
- edit the files (e.g. adding/editing layer mask, copy-paste one image content onto another, do some cropping etc.)
- save/overwrite the file(s)
- quit gimp (with (maybe also without) discarding changes)
Expected result: gimp just ends execution, finishes nicely
Actual result: sometimes crashing. Then a "crash-debug" window opens and shows information and offers some options for bug reporting.
Additional information
First I have the contents of the crash-debug window. Second I have used gdb for running gimp. As it crashed again in this situation, there is more information available there.
See below for both infos.
- The Crash-Debug-output:
GNU Image Manipulation Program version 2.10.36
git-describe: GIMP_2_10_36
Build: unknown rev 0 for linux
# C compiler #
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.2.1 20230801 (GCC)
# Libraries #
using babl version 0.1.108 (compiled against version 0.1.108)
using GEGL version 0.4.48 (compiled against version 0.4.48)
using GLib version 2.80.0 (compiled against version 2.80.0)
using GdkPixbuf version 2.42.10 (compiled against version 2.42.10)
using GTK+ version 2.24.33 (compiled against version 2.24.33)
using Pango version 1.52.2 (compiled against version 1.52.2)
using Fontconfig version 2.15.0 (compiled against version 2.15.0)
using Cairo version 1.18.0 (compiled against version 1.18.0)
fatal error: Segmentation fault
Stack trace:
# Stack traces obtained from PID 1075 - Thread 1075 #
This GDB supports auto-downloading debuginfo from the following URLs:
<https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[New LWP 1076]
[New LWP 1077]
[New LWP 1078]
[New LWP 1079]
[New LWP 1080]
[New LWP 1081]
[New LWP 1097]
[New LWP 1103]
[New LWP 1106]
[New LWP 1127]
[New LWP 1189]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
0x00007f831947c6bc in read () from /usr/lib/libc.so.6
Id Target Id Frame
* 1 Thread 0x7f831839b180 (LWP 1075) "gimp" 0x00007f831947c6bc in read () from /usr/lib/libc.so.6
2 Thread 0x7f83174006c0 (LWP 1076) "worker" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
3 Thread 0x7f8316a006c0 (LWP 1077) "worker" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
4 Thread 0x7f83160006c0 (LWP 1078) "worker" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
5 Thread 0x7f83156006c0 (LWP 1079) "pool-spawner" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
6 Thread 0x7f8314c006c0 (LWP 1080) "gmain" 0x00007f831947c0bf in poll () from /usr/lib/libc.so.6
7 Thread 0x7f830fe006c0 (LWP 1081) "gdbus" 0x00007f831947c0bf in poll () from /usr/lib/libc.so.6
8 Thread 0x7f82a56006c0 (LWP 1097) "async" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
9 Thread 0x7f829fe006c0 (LWP 1103) "gimp" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
10 Thread 0x7f829ea006c0 (LWP 1106) "gimp" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
11 Thread 0x7f829f4006c0 (LWP 1127) "swap writer" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
12 Thread 0x7f8274a006c0 (LWP 1189) "pool-gimp" 0x00007f831948788d in syscall () from /usr/lib/libc.so.6
Thread 12 (Thread 0x7f8274a006c0 (LWP 1189) "pool-gimp"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744e43 in g_cond_wait_until () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196b4425 in ??? () at /usr/lib/libglib-2.0.so.0
#3 0x00007f83196b4587 in g_async_queue_timeout_pop () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831971da5e in ??? () at /usr/lib/libglib-2.0.so.0
#5 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#6 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#7 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 11 (Thread 0x7f829f4006c0 (LWP 1127) "swap writer"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8319ccc5d2 in ??? () at /usr/lib/libgegl-0.4.so.0
#3 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#5 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 10 (Thread 0x7f829ea006c0 (LWP 1106) "gimp"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196b4454 in ??? () at /usr/lib/libglib-2.0.so.0
#3 0x00007f83196b44bc in g_async_queue_pop () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831a134c48 in ??? () at /usr/lib/libpangoft2-1.0.so.0
#5 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#6 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#7 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 9 (Thread 0x7f829fe006c0 (LWP 1103) "gimp"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196b4454 in ??? () at /usr/lib/libglib-2.0.so.0
#3 0x00007f83196b44bc in g_async_queue_pop () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831a134c48 in ??? () at /usr/lib/libpangoft2-1.0.so.0
#5 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#6 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#7 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 8 (Thread 0x7f82a56006c0 (LWP 1097) "async"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00005f067b9e046d in ??? ()
#3 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#5 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 7 (Thread 0x7f830fe006c0 (LWP 1081) "gdbus"):
#0 0x00007f831947c0bf in poll () at /usr/lib/libc.so.6
#1 0x00007f8319749306 in ??? () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196eadc7 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3 0x00007f831998183c in ??? () at /usr/lib/libgio-2.0.so.0
#4 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#5 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#6 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 6 (Thread 0x7f8314c006c0 (LWP 1080) "gmain"):
#0 0x00007f831947c0bf in poll () at /usr/lib/libc.so.6
#1 0x00007f8319749306 in ??? () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196e9712 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3 0x00007f83196e9762 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#5 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#6 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 5 (Thread 0x7f83156006c0 (LWP 1079) "pool-spawner"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f83196b4454 in ??? () at /usr/lib/libglib-2.0.so.0
#3 0x00007f831971929e in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#5 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#6 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 4 (Thread 0x7f83160006c0 (LWP 1078) "worker"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8319c8ac94 in ??? () at /usr/lib/libgegl-0.4.so.0
#3 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#5 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 3 (Thread 0x7f8316a006c0 (LWP 1077) "worker"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8319c8ac94 in ??? () at /usr/lib/libgegl-0.4.so.0
#3 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#5 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 2 (Thread 0x7f83174006c0 (LWP 1076) "worker"):
#0 0x00007f831948788d in syscall () at /usr/lib/libc.so.6
#1 0x00007f8319744487 in g_cond_wait () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8319c8ac94 in ??? () at /usr/lib/libgegl-0.4.so.0
#3 0x00007f8319718065 in ??? () at /usr/lib/libglib-2.0.so.0
#4 0x00007f831940c55a in ??? () at /usr/lib/libc.so.6
#5 0x00007f8319489a3c in ??? () at /usr/lib/libc.so.6
Thread 1 (Thread 0x7f831839b180 (LWP 1075) "gimp"):
#0 0x00007f831947c6bc in read () at /usr/lib/libc.so.6
#1 0x00007f831a1ab729 in gimp_stack_trace_print () at /usr/lib/libgimpbase-2.0.so.0
#2 0x00005f067b6f6078 in ??? ()
#3 0x00005f067b6f647c in gimp_fatal_error ()
#4 0x00005f067b6f64e0 in ??? ()
#5 0x00007f83193bd770 in <signal handler called> () at /usr/lib/libc.so.6
#6 0x00007f831a289279 in ??? () at /usr/lib/libgtk-x11-2.0.so.0
#7 0x00007f831a28a28f in gtk_button_set_label () at /usr/lib/libgtk-x11-2.0.so.0
#8 0x00007f83197ff279 in ??? () at /usr/lib/libgobject-2.0.so.0
#9 0x00007f831980252f in g_object_set_valist () at /usr/lib/libgobject-2.0.so.0
#10 0x00007f83198029b9 in g_object_set () at /usr/lib/libgobject-2.0.so.0
#11 0x00005f067b749862 in ??? ()
#12 0x00007f83197ee730 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#13 0x00007f831981d896 in ??? () at /usr/lib/libgobject-2.0.so.0
#14 0x00007f831980e7a2 in ??? () at /usr/lib/libgobject-2.0.so.0
#15 0x00007f831980e9d7 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#16 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#17 0x00005f067ba0685f in gimp_container_remove ()
#18 0x00005f067ba8afee in ??? ()
#19 0x00005f067ba06385 in gimp_container_clear ()
#20 0x00005f067ba07696 in ??? ()
#21 0x00007f83197fd4ee in g_object_unref () at /usr/lib/libgobject-2.0.so.0
#22 0x00005f067b741240 in ??? ()
#23 0x00007f83197f8217 in ??? () at /usr/lib/libgobject-2.0.so.0
#24 0x00007f83196c91e2 in ??? () at /usr/lib/libglib-2.0.so.0
#25 0x00007f83197fa505 in ??? () at /usr/lib/libgobject-2.0.so.0
#26 0x00007f83197fd7d5 in g_object_run_dispose () at /usr/lib/libgobject-2.0.so.0
#27 0x00005f067b7499c0 in ??? ()
#28 0x00007f83197ee730 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#29 0x00007f831981d896 in ??? () at /usr/lib/libgobject-2.0.so.0
#30 0x00007f831980e7a2 in ??? () at /usr/lib/libgobject-2.0.so.0
#31 0x00007f831980e9d7 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#32 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#33 0x00007f83197ee730 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#34 0x00007f831981d896 in ??? () at /usr/lib/libgobject-2.0.so.0
#35 0x00007f831980e7a2 in ??? () at /usr/lib/libgobject-2.0.so.0
#36 0x00007f831980e9d7 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#37 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#38 0x00007f831a2894a6 in ??? () at /usr/lib/libgtk-x11-2.0.so.0
#39 0x00007f83197ee730 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#40 0x00007f831981d9da in ??? () at /usr/lib/libgobject-2.0.so.0
#41 0x00007f831980e7a2 in ??? () at /usr/lib/libgobject-2.0.so.0
#42 0x00007f831980e9d7 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#43 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#44 0x00007f831a289caa in ??? () at /usr/lib/libgtk-x11-2.0.so.0
#45 0x00007f831a338f08 in ??? () at /usr/lib/libgtk-x11-2.0.so.0
#46 0x00007f83197ee730 in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#47 0x00007f831981df4a in ??? () at /usr/lib/libgobject-2.0.so.0
#48 0x00007f831980e095 in ??? () at /usr/lib/libgobject-2.0.so.0
#49 0x00007f831980e9d7 in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#50 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#50 0x00007f831980ea94 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#51 0x00007f831a46d88d in ??? () at /usr/lib/libgtk-x11-2.0.so.0
#52 0x00007f831a33d676 in gtk_propagate_event () at /usr/lib/libgtk-x11-2.0.so.0
#53 0x00007f831a33ed73 in gtk_main_do_event () at /usr/lib/libgtk-x11-2.0.so.0
#54 0x00007f831a6e7dbc in ??? () at /usr/lib/libgdk-x11-2.0.so.0
#55 0x00007f83196ea199 in ??? () at /usr/lib/libglib-2.0.so.0
#56 0x00007f83197493bf in ??? () at /usr/lib/libglib-2.0.so.0
#57 0x00007f83196eadc7 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#58 0x00005f067b6fae51 in app_run ()
#59 0x00005f067b6f0572 in main ()
[Inferior 1 (process 1075) detached]
2.: The gdb-ouput after running gimp through gdb:
[Thread 0x7fff40a006c0 (LWP 10063) exited]
[Thread 0x7fff82c006c0 (LWP 10054) exited]
[Thread 0x7fff574006c0 (LWP 10057) exited]
[Thread 0x7fff54c006c0 (LWP 10061) exited]
[Detaching after vfork from child process 10071]
[New Thread 0x7fff54c006c0 (LWP 10079)]
[Thread 0x7fff56a006c0 (LWP 10058) exited]
Thread 1 "gimp" received signal SIGSEGV, Segmentation fault.
0x00007ffff7a89279 in gtk_button_construct_child (button=button@entry=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:955
Downloading source file /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c
955 if (image->parent)
(gdb) bt
#0 0x00007ffff7a89279 in gtk_button_construct_child (button=button@entry=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:955
#1 0x00007ffff7a8a28f in IA__gtk_button_set_label (button=0x55555a6d6070 [GtkButton], label=<optimized out>) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1816
#2 0x00007ffff6fba279 in object_set_property (object=0x55555a6d6070 [GtkButton], pspec=0x555558aa0010 [GParamString], value=0x7fffffffb8c0, nqueue=0x0, user_specified=<optimized out>) at ../glib/gobject/gobject.c:2169
#3 0x00007ffff6fbd52f in g_object_set_valist (var_args=0x7fffffffb970, first_property_name=<optimized out>, object=0x7fffffffb970) at ../glib/gobject/gobject.c:3138
#4 g_object_set_valist (object=object@entry=0x55555a6d6070 [GtkButton], first_property_name=first_property_name@entry=0x555555aeb10d "label", var_args=var_args@entry=0x7fffffffb970) at ../glib/gobject/gobject.c:3099
#5 0x00007ffff6fbd9b9 in g_object_set (_object=0x55555a6d6070, first_property_name=0x555555aeb10d "label") at ../glib/gobject/gobject.c:3314
#6 0x000055555564095a in ??? ()
#7 0x00007ffff6fa9730 in g_closure_invoke (closure=0x55555a683a30, return_value=0x0, n_param_values=2, param_values=0x7fffffffbc70, invocation_hint=0x7fffffffbbc0) at ../glib/gobject/gclosure.c:834
#8 0x00007ffff6fd8896 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fffffffbd60, detail=detail@entry=0, instance=instance@entry=0x55555a592a00, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffbc70) at ../glib/gobject/gsignal.c:3888
#9 0x00007ffff6fc97a2 in signal_emit_valist_unlocked (instance=instance@entry=0x55555a592a00, signal_id=signal_id@entry=54, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffbec0) at ../glib/gobject/gsignal.c:3520
#10 0x00007ffff6fc99d7 in g_signal_emit_valist (instance=0x55555a592a00, signal_id=54, detail=0, var_args=var_args@entry=0x7fffffffbec0) at ../glib/gobject/gsignal.c:3263
#11 0x00007ffff6fc9a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
#12 0x00005555558fd85f in gimp_container_remove ()
#13 0x0000555555981fee in ??? ()
#14 0x00005555558fd385 in gimp_container_clear ()
#15 0x00005555558fe696 in ??? ()
#16 0x00007ffff6fb84ee in g_object_unref (_object=0x55555a592a00) at ../glib/gobject/gobject.c:4381
#17 0x0000555555638240 in ??? ()
#18 0x00007ffff6fb3217 in weak_refs_notify (data=0x55555a761350) at ../glib/gobject/gobject.c:3643
#19 0x00007ffff6e841e2 in g_data_set_internal (datalist=<optimized out>, key_id=<optimized out>, new_data=<optimized out>, new_destroy_func=<optimized out>, dataset=0x0) at ../glib/glib/gdataset.c:468
#20 0x00007ffff6fb5505 in g_object_real_dispose (object=0x555559a53210 [GimpMessageDialog]) at ../glib/gobject/gobject.c:1752
#21 0x00007ffff6fb87d5 in g_object_run_dispose (object=0x555559a53210 [GimpMessageDialog]) at ../glib/gobject/gobject.c:1839
#22 g_object_run_dispose (object=0x555559a53210 [GimpMessageDialog]) at ../glib/gobject/gobject.c:1829
#23 0x00005555556409c0 in ??? ()
#24 0x00007ffff6fa9730 in g_closure_invoke (closure=0x55555956ed70, return_value=0x0, n_param_values=2, param_values=0x7fffffffc360, invocation_hint=0x7fffffffc2b0) at ../glib/gobject/gclosure.c:834
#25 0x00007ffff6fd8896 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fffffffc450, detail=detail@entry=0, instance=instance@entry=0x555559a53210, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc360) at ../glib/gobject/gsignal.c:3888
#26 0x00007ffff6fc97a2 in signal_emit_valist_unlocked (instance=instance@entry=0x555559a53210, signal_id=signal_id@entry=392, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffc5b0) at ../glib/gobject/gsignal.c:3520
#27 0x00007ffff6fc99d7 in g_signal_emit_valist (instance=0x555559a53210, signal_id=392, detail=0, var_args=var_args@entry=0x7fffffffc5b0) at ../glib/gobject/gsignal.c:3263
#28 0x00007ffff6fc9a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
#29 0x00007ffff6fa9730 in g_closure_invoke (closure=0x55555a781930, return_value=0x0, n_param_values=1, param_values=0x7fffffffc860, invocation_hint=0x7fffffffc7b0) at ../glib/gobject/gclosure.c:834
#30 0x00007ffff6fd8896 in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fffffffc930, detail=detail@entry=0, instance=instance@entry=0x55555a6d6070, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffc860) at ../glib/gobject/gsignal.c:3888
#31 0x00007ffff6fc97a2 in signal_emit_valist_unlocked (instance=instance@entry=0x55555a6d6070, signal_id=signal_id@entry=350, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffca90) at ../glib/gobject/gsignal.c:3520
#32 0x00007ffff6fc99d7 in g_signal_emit_valist (instance=0x55555a6d6070, signal_id=350, detail=0, var_args=var_args@entry=0x7fffffffca90) at ../glib/gobject/gsignal.c:3263
#33 0x00007ffff6fc9a94 in g_signal_emit (instance=instance@entry=0x55555a6d6070, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3583
#34 0x00007ffff7a89433 in IA__gtk_button_clicked (button=button@entry=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1115
#35 0x00007ffff7a894a6 in gtk_real_button_released (button=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1712
#36 gtk_real_button_released (button=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1702
#37 0x00007ffff6fa9730 in g_closure_invoke (closure=0x555558aa06d0, return_value=0x0, n_param_values=1, param_values=0x7fffffffcd60, invocation_hint=0x7fffffffccb0) at ../glib/gobject/gclosure.c:834
#38 0x00007ffff6fd89da in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fffffffce30, detail=detail@entry=0, instance=instance@entry=0x55555a6d6070, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcd60) at ../glib/gobject/gsignal.c:3721
#39 0x00007ffff6fc97a2 in signal_emit_valist_unlocked (instance=instance@entry=0x55555a6d6070, signal_id=signal_id@entry=349, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffcf90) at ../glib/gobject/gsignal.c:3520
#40 0x00007ffff6fc99d7 in g_signal_emit_valist (instance=0x55555a6d6070, signal_id=349, detail=0, var_args=var_args@entry=0x7fffffffcf90) at ../glib/gobject/gsignal.c:3263
#41 0x00007ffff6fc9a94 in g_signal_emit (instance=instance@entry=0x55555a6d6070, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3583
#42 0x00007ffff7a89c63 in gtk_button_released (button=button@entry=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1107
#43 0x00007ffff7a89caa in gtk_button_button_release (widget=widget@entry=0x55555a6d6070 [GtkButton], event=<optimized out>) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1604
#44 0x00007ffff7b38f08 in _gtk_marshal_BOOLEAN__BOXED (closure=0x5555561bf2b0, return_value=0x7fffffffd1f0, n_param_values=<optimized out>, param_values=0x7fffffffd280, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/src/debug/gtk2/gtk/gtk/gtkmarshalers.c:84
#45 0x00007ffff6fa9730 in g_closure_invoke (closure=0x5555561bf2b0, return_value=0x7fffffffd1f0, n_param_values=2, param_values=0x7fffffffd280, invocation_hint=0x7fffffffd1d0) at ../glib/gobject/gclosure.c:834
#46 0x00007ffff6fd8f4a in signal_emit_unlocked_R.isra.0 (node=node@entry=0x7fffffffd370, detail=detail@entry=0, instance=instance@entry=0x55555a6d6070, emission_return=emission_return@entry=0x7fffffffd3f0, instance_and_params=instance_and_params@entry=0x7fffffffd280) at ../glib/gobject/gsignal.c:3928
#47 0x00007ffff6fc9095 in signal_emit_valist_unlocked (instance=instance@entry=0x55555a6d6070, signal_id=signal_id@entry=164, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffd4d0) at ../glib/gobject/gsignal.c:3533
#48 0x00007ffff6fc99d7 in g_signal_emit_valist (instance=0x55555a6d6070, signal_id=164, detail=0, var_args=var_args@entry=0x7fffffffd4d0) at ../glib/gobject/gsignal.c:3263
#49 0x00007ffff6fc9a94 in g_signal_emit (instance=instance@entry=0x55555a6d6070, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3583
#50 0x00007ffff7c6d88d in gtk_widget_event_internal (widget=0x55555a6d6070 [GtkButton], event=0x55555a6cee70) at /usr/src/debug/gtk2/gtk/gtk/gtkwidget.c:5010
#51 0x00007ffff7b3d676 in IA__gtk_propagate_event (widget=widget@entry=0x55555a6d6070 [GtkButton], event=event@entry=0x55555a6cee70) at /usr/src/debug/gtk2/gtk/gtk/gtkmain.c:2503
#52 0x00007ffff7b3ed73 in IA__gtk_main_do_event (event=0x55555a6cee70) at /usr/src/debug/gtk2/gtk/gtk/gtkmain.c:1698
#53 IA__gtk_main_do_event (event=<optimized out>) at /usr/src/debug/gtk2/gtk/gtk/gtkmain.c:1503
#54 0x00007ffff79a4dbc in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at x11/gdkevents-x11.c:2425
#55 0x00007ffff6ea5199 in g_main_dispatch (context=0x555555f75100) at ../glib/glib/gmain.c:3344
#56 0x00007ffff6f043bf in g_main_context_dispatch_unlocked (context=0x555555f75100) at ../glib/glib/gmain.c:4152
#57 g_main_context_iterate_unlocked.isra.0 (context=0x555555f75100, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
#58 0x00007ffff6ea5dc7 in g_main_loop_run (loop=0x555558a8a580) at ../glib/glib/gmain.c:4419
#59 0x00005555555f1e51 in app_run ()
#60 0x00005555555e7572 in main ()
(gdb) frame 0
#0 0x00007ffff7a89279 in gtk_button_construct_child (button=button@entry=0x55555a6d6070 [GtkButton]) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:955
955 if (image->parent)
(gdb) l
950 NULL);
951
952 if (priv->image && !priv->image_is_stock)
953 {
954 image = g_object_ref (priv->image);
955 if (image->parent)
956 gtk_container_remove (GTK_CONTAINER (image->parent), image);
957 }
958
959 priv->image = NULL;
(gdb) p image
$1 = 0x0
(gdb) frame 1
#1 0x00007ffff7a8a28f in IA__gtk_button_set_label (button=0x55555a6d6070 [GtkButton], label=<optimized out>) at /usr/src/debug/gtk2/gtk/gtk/gtkbutton.c:1816
1816 gtk_button_construct_child (button);
(gdb) l
1811
1812 new_label = g_strdup (label);
1813 g_free (button->label_text);
1814 button->label_text = new_label;
1815
1816 gtk_button_construct_child (button);
1817
1818 g_object_notify (G_OBJECT (button), "label");
1819 }
1820
(gdb)
(gdb) frame 2
#2 0x00007ffff6fba279 in object_set_property (object=0x55555a6d6070 [GtkButton], pspec=0x555558aa0010 [GParamString], value=0x7fffffffb8c0, nqueue=0x0, user_specified=<optimized out>) at ../glib/gobject/gobject.c:2169
Downloading source file /usr/src/debug/glib2/build/../glib/gobject/gobject.c
l2169 class->set_property (object, param_id, value, pspec);
(gdb) l
2164 pclass = G_PARAM_SPEC_GET_CLASS (pspec);
2165 if (g_value_type_compatible (G_VALUE_TYPE (value), pspec->value_type) &&
2166 (pclass->value_validate == NULL ||
2167 (pclass->value_is_valid != NULL && pclass->value_is_valid (pspec, value))))
2168 {
2169 class->set_property (object, param_id, value, pspec);
2170 }
2171 else
2172 {
2173 /* provide a copy to work from, convert (if necessary) and validate */
(gdb) frame 3
#3 0x00007ffff6fbd52f in g_object_set_valist (var_args=0x7fffffffb970, first_property_name=<optimized out>, object=0x7fffffffb970) at ../glib/gobject/gobject.c:3138
3138 object_set_property (object, pspec, &value, nqueue, TRUE);
(gdb) l
3133 g_free (error);
3134 g_value_unset (&value);
3135 break;
3136 }
3137
3138 object_set_property (object, pspec, &value, nqueue, TRUE);
3139
3140 /* We open-code g_value_unset() here to avoid the
3141 * cost of looking up the GTypeValueTable again.
3142 */
(gdb) frame 4
#4 g_object_set_valist (object=object@entry=0x55555a6d6070 [GtkButton], first_property_name=first_property_name@entry=0x555555aeb10d "label", var_args=var_args@entry=0x7fffffffb970) at ../glib/gobject/gobject.c:3099
3099 g_object_set_valist (GObject *object,
(gdb) l
3094 * name/value pairs, followed by %NULL
3095 *
3096 * Sets properties on an object.
3097 */
3098 void
3099 g_object_set_valist (GObject *object,
3100 const gchar *first_property_name,
3101 va_list var_args)
3102 {
3103 GObjectNotifyQueue *nqueue = NULL;
(gdb) frame 5
#5 0x00007ffff6fbd9b9 in g_object_set (_object=0x55555a6d6070, first_property_name=0x555555aeb10d "label") at ../glib/gobject/gobject.c:3314
3314 g_object_set_valist (object, first_property_name, var_args);
(gdb) l
3309 va_list var_args;
3310
3311 g_return_if_fail (G_IS_OBJECT (object));
3312
3313 va_start (var_args, first_property_name);
3314 g_object_set_valist (object, first_property_name, var_args);
3315 va_end (var_args);
3316 }
3317
3318 /**
(gdb)
OK, after frame 5 I had enough ;-) Hope that helps.