"pelzflorian (Florian Pelz)" <pelzflor...@pelzflorian.de> writes: > Hi David, thank you for your continuing responses. I will try to get a > backtrace with GTK debug symbols
I now managed to build gtk with a debug output and meson configure flag "-Dc_args=-O0". For drawing-widget.scm on x86_64, klass->snapshot looks high like a code segment address but has a bogus disassembly. Was it clobbered? Should klass->snapshot be a procedure calling drawing-widget.scm’s snapshot procedure? Probably I’m misinterpreting. Thread 1 "guile" received signal SIGSEGV, Segmentation fault. 0x00007f67944012d0 in ?? () (gdb) bt #0 0x00007f67944012d0 in ?? () #1 0x00007f678776812a in gtk_widget_create_render_node (widget=0x13adf70, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11862 #2 0x00007f678776828b in gtk_widget_do_snapshot (widget=0x13adf70, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11897 #3 0x00007f678776918a in gtk_widget_snapshot_child (widget=0x13bb310, child=0x13adf70, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:12318 #4 0x00007f6787750fd4 in gtk_widget_real_snapshot (widget=0x13bb310, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:756 #5 0x00007f67877680f8 in gtk_widget_create_render_node (widget=0x13bb310, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11857 #6 0x00007f678776828b in gtk_widget_do_snapshot (widget=0x13bb310, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11897 #7 0x00007f6787768343 in gtk_widget_snapshot (widget=0x13bb310, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11919 #8 0x00007f678776844a in gtk_widget_render (widget=0x13bb310, surface=0x13c3e90, region=0x3390970) at ../gtk-4.12.3/gtk/gtkwidget.c:11951 #9 0x00007f6787777ca1 in surface_render (surface=0x13c3e90, region=0x3390970, widget=0x13bb310) at ../gtk-4.12.3/gtk/gtkwindow.c:4813 #10 0x00007f67879ad371 in _gdk_marshal_BOOLEAN__BOXEDv (closure=0x338ae70, return_value=0x7ffdd39838d0, instance=0x13c3e90, args=0x7ffdd3983a58, marshal_data=0x0, n_params=1, param_types=0x11e2dd0) at gdk/gdkmarshalers.c:130 #11 0x00007f678de7c5b9 in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #12 0x00007f678de8f52e in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #13 0x00007f678de953c5 in g_signal_emit_valist () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #14 0x00007f678de95472 in g_signal_emit () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #15 0x00007f6787a6a31c in gdk_surface_paint_on_clock (clock=0x1284c80, data=0x13c3e90) at ../gtk-4.12.3/gdk/gdksurface.c:1377 #16 0x00007f678de7c5b9 in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #17 0x00007f678de9017b in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #18 0x00007f678de953c5 in g_signal_emit_valist () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #19 0x00007f678de95472 in g_signal_emit () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgobject-2.0.so.0 #20 0x00007f6787a4cd15 in _gdk_frame_clock_emit_paint (frame_clock=0x1284c80) at ../gtk-4.12.3/gdk/gdkframeclock.c:708 #21 0x00007f6787a4ddf9 in gdk_frame_clock_paint_idle (data=0x1284c80) at ../gtk-4.12.3/gdk/gdkframeclockidle.c:632 #22 0x00007f678df238eb in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libglib-2.0.so.0 #23 0x00007f678df1fcf3 in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libglib-2.0.so.0 #24 0x00007f678df22c17 in ?? () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libglib-2.0.so.0 #25 0x00007f678df231ff in g_main_context_iteration () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libglib-2.0.so.0 #26 0x00007f678dd5e64d in g_application_run () from /gnu/store/kjdjarbkknf8vv9rc8vkkh1k1vrc57r0-glib-2.78.0/lib/libgio-2.0.so.0 #27 0x00007f6795260052 in ?? () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #28 0x00007f679525ec85 in ?? () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #29 0x00007f679525f68e in ffi_call () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #30 0x00007f678e0199c7 in g_callable_info_invoke () from /gnu/store/vycyjb00dcqwjpn45as8jhrw4apv4r5n-gobject-introspection-1.73.1/lib/libgirepository-1.0.so #31 0x00007f678e01af62 in g_function_info_invoke () from /gnu/store/vycyjb00dcqwjpn45as8jhrw4apv4r5n-gobject-introspection-1.73.1/lib/libgirepository-1.0.so #32 0x00007f6795260052 in ?? () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #33 0x00007f679525ec85 in ?? () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #34 0x00007f679525f68e in ffi_call () from /gnu/store/w8b0l8hk6g0fahj4fvmc4qqm3cvaxnmv-libffi-3.4.4/lib/libffi.so.8 #35 0x00007f67953bcd37 in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #36 0x00007f67953acf55 in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #37 0x00007f67953a1b9d in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #38 0x00007f67953acdb5 in scm_call_n () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #39 0x00007f6795317977 in scm_primitive_eval () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #40 0x00007f679531d846 in scm_eval () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #41 0x00007f679537c3e6 in scm_shell () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #42 0x00007f679532e8cc in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #43 0x00007f6795315e1a in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #44 0x00007f679539f390 in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #45 0x00007f67953acdb5 in scm_call_n () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #46 0x00007f67953175ca in scm_call_2 () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #47 0x00007f67953be092 in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #48 0x00007f6795399e1f in scm_c_catch () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #49 0x00007f6795318396 in scm_c_with_continuation_barrier () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #50 0x00007f6795399049 in ?? () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #51 0x00007f679527c7fa in GC_call_with_stack_base () from /gnu/store/1w1r6r56z9lhg8ghcb7lxss6mkn7d5l1-libgc-8.2.2/lib/libgc.so.1 #52 0x00007f67953933f8 in scm_with_guile () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #53 0x00007f67953378e5 in scm_boot_guile () from /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/lib/libguile-3.0.so.1 #54 0x00000000004010f7 in ?? () #55 0x00007f6794da41f7 in __libc_start_call_main () from /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/libc.so.6 #56 0x00007f6794da42ac in __libc_start_main_impl () from /gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib/libc.so.6 #57 0x0000000000401171 in ?? () (gdb) frame 1 #1 0x00007f678776812a in gtk_widget_create_render_node (widget=0x13adf70, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11862 11862 klass->snapshot (widget, snapshot); (gdb) list 11857 klass->snapshot (widget, snapshot); 11858 gtk_snapshot_pop (snapshot); 11859 } 11860 else 11861 { 11862 klass->snapshot (widget, snapshot); 11863 } 11864 11865 gtk_css_style_snapshot_outline (&boxes, snapshot); 11866 (gdb) print klass $1 = (GtkWidgetClass *) 0x12f8df0 (gdb) print klass->snapshot $2 = (void (*)(GtkWidget *, GtkSnapshot *)) 0x7f67944012d0 (gdb) frame 1 #1 0x00007f678776812a in gtk_widget_create_render_node (widget=0x13adf70, snapshot=0x33c9460) at ../gtk-4.12.3/gtk/gtkwidget.c:11862 11862 klass->snapshot (widget, snapshot); (gdb) print *klass $3 = {parent_class = {g_type_class = {g_type = 19893504}, construct_properties = 0x12f8c10, constructor = 0x7f678de81570, set_property = 0x0, get_property = 0x0, dispose = 0x7f678775e2ff <gtk_widget_dispose>, finalize = 0x7f678775e921 <gtk_widget_finalize>, dispatch_properties_changed = 0x7f678de80000, notify = 0x0, constructed = 0x7f6787751253 <gtk_widget_constructed>, flags = 1, n_construct_properties = 1, pspecs = 0x0, n_pspecs = 0, pdummy = {0x0, 0x0, 0x0}}, show = 0x7f6787754e10 <gtk_widget_real_show>, hide = 0x7f6787755119 <gtk_widget_real_hide>, map = 0x7f678775eccd <gtk_widget_real_map>, unmap = 0x7f678775edae <gtk_widget_real_unmap>, realize = 0x7f678775ee3d <gtk_widget_real_realize>, unrealize = 0x7f678775eee9 <gtk_widget_real_unrealize>, root = 0x7f6787751078 <gtk_widget_real_root>, unroot = 0x7f6787751166 <gtk_widget_real_unroot>, size_allocate = 0x7f6787751399 <gtk_widget_real_size_allocate>, state_flags_changed = 0x7f678775130e <gtk_widget_real_state_flags_changed>, direction_changed = 0x7f678775c4aa <gtk_widget_real_direction_changed>, get_request_mode = 0x7f67877512ff <gtk_widget_real_get_request_mode>, measure = 0x7f67877512ce <gtk_widget_real_measure>, mnemonic_activate = 0x7f6787758d5d <gtk_widget_real_mnemonic_activate>, grab_focus = 0x7f6787759a7c <gtk_widget_grab_focus_self>, focus = 0x7f6787759dde <gtk_widget_real_focus>, set_focus_child = 0x7f678776939a <gtk_widget_real_set_focus_child>, move_focus = 0x7f6787759f81 <gtk_widget_real_move_focus>, keynav_failed = 0x7f6787759fe1 <gtk_widget_real_keynav_failed>, query_tooltip = 0x7f678775131c <gtk_widget_real_query_tooltip>, compute_expand = 0x0, css_changed = 0x7f6787759b7e <gtk_widget_real_css_changed>, system_setting_changed = 0x7f6787759cd5 <gtk_widget_real_system_setting_changed>, snapshot = 0x7f67944012d0, contains = 0x7f6787750fef <gtk_widget_real_contains>, priv = 0x12f8f90, padding = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} (gdb) disassemble klass->snapshot,+64 Dump of assembler code from 0x7f67944012d0 to 0x7f6794401310: 0x00007f67944012d0: (bad) 0x00007f67944012d1: insl (%dx),%es:(%rdi) 0x00007f67944012d2: sbb (%rcx),%eax 0x00007f67944012d4: add %al,(%rax) 0x00007f67944012d6: add %al,(%rax) 0x00007f67944012d8: add %al,(%rax) 0x00007f67944012da: add %al,(%rax) 0x00007f67944012dc: add %al,(%rax) 0x00007f67944012de: add %al,(%rax) 0x00007f67944012e0: add %al,(%rax) 0x00007f67944012e2: add %al,(%rax) 0x00007f67944012e4: add %al,(%rax) 0x00007f67944012e6: add %al,(%rax) 0x00007f67944012e8: add %al,(%rax) 0x00007f67944012ea: add %al,(%rax) 0x00007f67944012ec: add %al,(%rax) 0x00007f67944012ee: add %al,(%rax) 0x00007f67944012f0: (bad) 0x00007f67944012f1: pop %rsi 0x00007f67944012f2: data16 xchg %ah,0x7f(%rdi) 0x00007f67944012f6: add %al,(%rax) 0x00007f67944012f8: loopne 0x7f6794401318 0x00007f67944012fa: movabs 0x4cd74000007f6793,%al 0x00007f6794401303: mov %fs,0x7f(%rdi) 0x00007f6794401306: add %al,(%rax) 0x00007f6794401308: rclb (%rdx) 0x00007f679440130a: rex xchg %eax,%esp 0x00007f679440130c: addr32 jg 0x7f679440130f 0x00007f679440130f: add %al,0x6793a01e(%rax) End of assembler dump. (gdb) frame 10 #10 0x00007f67879ad371 in _gdk_marshal_BOOLEAN__BOXEDv (closure=0x338ae70, return_value=0x7ffdd39838d0, instance=0x13c3e90, args=0x7ffdd3983a58, marshal_data=0x0, n_params=1, param_types=0x11e2dd0) at gdk/gdkmarshalers.c:130 warning: 130 gdk/gdkmarshalers.c: Datei oder Verzeichnis nicht gefunden [German for file or directory not found] (gdb) print closure $4 = (GClosure *) 0x338ae70 (gdb) print *closure $5 = {ref_count = 2, meta_marshal_nouse = 0, n_guards = 0, n_fnotifiers = 0, n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0, in_marshal = 1, is_invalid = 0, marshal = 0x7f67879ad108 <_gdk_marshal_BOOLEAN__BOXED>, data = 0x13bb310, notifiers = 0x0} (gdb) Regards, Florian