Dear Maintainer, I just tried to have a look at this backtrace by the submitter:
Thread 1 (Thread 0x7f81021b1e00 (LWP 3464)): ... #6 0x7f810411f 730 in <signal handler called> () at libpthread.so.0 #7 0x56302b0c9 97f in () #8 0x56302b0c9 c28 in () #9 0x7f8104303 dd8 in g_main_context_dispatch () at libglib-2.0.so.0 #10 0x7f8104304 1c8 in () at libglib-2.0.so.0 #11 0x7f8104304 4c2 in g_main_loop_run () at libglib-2.0.so.0 #12 0x56302ad56 cb7 in app_run () #13 0x56302ad56 5b5 in main () I think that translates to these symbols: #0 0x555555997 97f in gimp_projection_chunk_render_iteration () at gimpprojection.c:1416 #1 0x555555997 c28 in gimp_projection_chunk_render_callback () at gimpprojection.c:857 #2 0x7ffff6eb1 dd8 in g_main_dispatch () at ../../../glib/gmain.c:3182 #3 0x7ffff6eb1 dd8 in g_main_context_dispatch () at ../../../glib/gmain.c:3847 #4 0x7ffff6eb2 1c8 in g_main_context_iterate () at ../../../glib/gmain.c:3920 #5 0x7ffff6eb2 4c2 in g_main_loop_run () at ../../../glib/gmain.c:4116 #6 0x555555624 cb7 in app_run () at app.c:440 #7 0x555555624 5b5 in main () at main.c:524 Unfortuantely at this offset 97f is just a idiv instruction. Without having the registers values I could not make a clue out of it. (gdb) disassemble 0x55555599797f-0x10,0x55555599797f+0x8 Dump of assembler code from 0x55555599796f to 0x555555997987: 0x555555997 96f <gimp_projection_chunk_render_iteration+367>: cmp %r13d,%eax 0x555555997 972 <gimp_projection_chunk_render_iteration+370>: mov %eax,%r12d 0x555555997 975 <gimp_projection_chunk_render_iteration+373>: mov 0x4c(%rbx),%eax 0x555555997 978 <gimp_projection_chunk_render_iteration+376>: cmovg %r13d,%r12d 0x555555997 97c <gimp_projection_chunk_render_iteration+380>: xor %edi,%edi 0x555555997 97e <gimp_projection_chunk_render_iteration+382>: cltd => 0x555555997 97f <gimp_projection_chunk_render_iteration+383>: idiv %r12d 0x555555997 982 <gimp_projection_chunk_render_iteration+386>: cvtsi2sd %eax,%xmm0 0x555555997 986 <gimp_projection_chunk_render_iteration+390>: callq 0x555555997500 <gimp_projection_round_chunk_size> End of assembler dump. Unfortunately gimp seems to call gdb but does just retrieve backtraces but not registers. Maybe in libgimpbase/gimputils.c a line like following could do that: gchar *args[9] = { "gdb", "-batch", + "-ex", "info reg", "-ex", "info threads", "-ex", "thread apply all backtrace full", Register $r12d might have been 0, in that case gimp would throw a similar exception. Also I could not find a matching upstream bug report. Kind regards, Bernhard
# Debian Buster amd64 qemu VM apt update apt dist-upgrade apt install systemd-coredump xserver-xorg dbus-x11 lightdm openbox gdb mc gimp gimp-dbgsym libglib2.0-0-dbgsym apt build-dep gimp mkdir /home/benutzer/source/gimp/orig -p cd /home/benutzer/source/gimp/orig apt source gimp cd export DISPLAY=:0 gdb -q --args gimp set width 0 set pagination off run ctrl+c generate-core-file ~/gimp.core gdb -q /usr/bin/gimp --core gimp.core set width 0 set pagination off directory /home/benutzer/source/gimp/orig/gimp-2.10.8/app/core b *0x00005555556245b0 b *0x0000555555624cb2 b *0x00007ffff6eb64bd b *0x00007ffff6eb61c3 b *0x00007ffff6eb5dd5 b *0x0000555555997c23 b *0x000055555599797f ########### # From submitter: Thread 1 (Thread 0x7f81021b1e00 (LWP 3464)): #0 0x7f810411e 544 in __libc_read (nbytes=256, buf=0x7ffe67e0a850, fd=14) at ../sysdeps/unix/sysv/linux/read.c:26 #1 0x7f810411e 544 in __libc_read (fd=14, buf=0x7ffe67e0a850, nbytes=256) at ../sysdeps/unix/sysv/linux/read.c:24 #2 0x7f8104e17 d34 in gimp_stack_trace_print () at libgimpbase-2.0.so.0 #3 0x56302ad57 4a0 in () #4 0x56302ad57 8d8 in () #5 0x56302ad58 037 in () #6 0x7f810411f 730 in <signal handler called> () at libpthread.so.0 #7 0x56302b0c9 97f in () #8 0x56302b0c9 c28 in () #9 0x7f8104303 dd8 in g_main_context_dispatch () at libglib-2.0.so.0 #10 0x7f8104304 1c8 in () at libglib-2.0.so.0 #11 0x7f8104304 4c2 in g_main_loop_run () at libglib-2.0.so.0 #12 0x56302ad56 cb7 in app_run () #13 0x56302ad56 5b5 in main () 0x000055555599797f <+383>: idiv %r12d Breakpoint 7 at 0x55555599797f: file gimpprojection.c, line 1416. 0x0000555555997 c23 <gimp_projection_chunk_render_callback+83>: callq 0x555555997800 <gimp_projection_chunk_render_iteration> 0x0000555555997 c28 <gimp_projection_chunk_render_callback+88>: test %eax,%eax Breakpoint 6 at 0x555555997c23: file gimpprojection.c, line 857. 0x00007ffff6eb5 dd5 <+341>: callq *%r15 0x00007ffff6eb5 dd8 <+344>: mov 0x10(%rsp),%rcx Breakpoint 5 at 0x7ffff6eb5dd5: file ../../../glib/gmain.c, line 3182. 0x00007ffff6eb6 1c3 <+515>: callq 0x7ffff6eb5c80 <g_main_context_dispatch> 0x00007ffff6eb6 1c8 <+520>: jmpq 0x7ffff6eb60ee <g_main_context_iterate+302> Breakpoint 4 at 0x7ffff6eb61c3: file ../../../glib/gmain.c, line 3920. 0x00007ffff6eb6 4bd <+173>: callq 0x7ffff6eb5fc0 <g_main_context_iterate> 0x00007ffff6eb6 4c2 <+178>: mov 0x8(%rbx),%eax Breakpoint 3 at 0x7ffff6eb64bd: file ../../../glib/gmain.c, line 4116. 0x0000555555624 cb2 <+850>: callq 0x5555556207e0 <g_main_loop_run@plt> 0x0000555555624 cb7 <+855>: mov %rbx,%rdi Breakpoint 2 at 0x555555624cb2: file app.c, line 440. 0x0000555555624 5b0 <+912>: callq 0x555555624960 <app_run> 0x0000555555624 5b5 <+917>: mov 0xa0(%rsp),%rdi Breakpoint 1 at 0x5555556245b0: file main.c, line 524. ------ 0x56302b0c9c28 in ??? - 0x56302ad565b5 in main = 0x373673 offset -> 0x00005555556245b5 + 0x373673 = 0x555555997C28 -> disassemble 0x555555997C28-0x20,0x555555997C28+0x20 --> gimp_projection_chunk_render_callback+88 ------ (gdb) list gimpprojection.c:1416 1412 1413 static gint 1414 gimp_projection_round_chunk_width (gdouble width) 1415 { 1416 gint w = gimp_projection_round_chunk_size (width, FALSE); 1417 1418 return CLAMP (w, GIMP_PROJECTION_CHUNK_MIN_WIDTH, 1419 GIMP_PROJECTION_CHUNK_MAX_WIDTH); 1420 } (gdb) list gimpprojection.c:1379,1412 1379 1380 static gint 1381 gimp_projection_round_chunk_size (gdouble size, 1382 gboolean toward_zero) 1383 { 1384 /* round 'size' (up or down, depending on 'toward_zero') to the closest power 1385 * of 2 1386 */ 1387 1388 if (size < 0.0) 1389 { 1390 return -gimp_projection_round_chunk_size (-size, toward_zero); 1391 } 1392 else if (size == 0.0) 1393 { 1394 return 0; 1395 } 1396 else if (size < 1.0) 1397 { 1398 return toward_zero ? 0 : 1; 1399 } 1400 else 1401 { 1402 gdouble log2_size = log (size) / G_LN2; 1403 1404 if (toward_zero) 1405 log2_size = floor (log2_size); 1406 else 1407 log2_size = ceil (log2_size); 1408 1409 return 1 << (gint) log2_size; 1410 } 1411 } ------- #0 0x555555997 97f in gimp_projection_chunk_render_iteration () at gimpprojection.c:1416 #1 0x555555997 c28 in gimp_projection_chunk_render_callback () at gimpprojection.c:857 #2 0x7ffff6eb1 dd8 in g_main_dispatch () at ../../../glib/gmain.c:3182 #3 0x7ffff6eb1 dd8 in g_main_context_dispatch () at ../../../glib/gmain.c:3847 #4 0x7ffff6eb2 1c8 in g_main_context_iterate () at ../../../glib/gmain.c:3920 #5 0x7ffff6eb2 4c2 in g_main_loop_run () at ../../../glib/gmain.c:4116 #6 0x555555624 cb7 in app_run () at app.c:440 #7 0x555555624 5b5 in main () at main.c:524 (gdb) disassemble 0x55555599797f-0x10,0x55555599797f+0x8 Dump of assembler code from 0x55555599796f to 0x555555997987: 0x000055555599796f <gimp_projection_chunk_render_iteration+367>: cmp %r13d,%eax 0x0000555555997972 <gimp_projection_chunk_render_iteration+370>: mov %eax,%r12d 0x0000555555997975 <gimp_projection_chunk_render_iteration+373>: mov 0x4c(%rbx),%eax 0x0000555555997978 <gimp_projection_chunk_render_iteration+376>: cmovg %r13d,%r12d 0x000055555599797c <gimp_projection_chunk_render_iteration+380>: xor %edi,%edi 0x000055555599797e <gimp_projection_chunk_render_iteration+382>: cltd => 0x000055555599797f <gimp_projection_chunk_render_iteration+383>: idiv %r12d 0x0000555555997982 <gimp_projection_chunk_render_iteration+386>: cvtsi2sd %eax,%xmm0 0x0000555555997986 <gimp_projection_chunk_render_iteration+390>: callq 0x555555997500 <gimp_projection_round_chunk_size> End of assembler dump.