Control: found 922323 0.9.20180101-1+b1 Control: tags 922323 + upstream
Dear Maintainer, I tried to have a look at this segfault, and guess I have found something. The problem seems to be, that the slirp library used by Basilisk is using some 32 bit types for pointers. Unfortunately this does not work in 64 bit systems. I could reproduce this also for current Buster/testing [2]. When I build a stretch package with ipqp_32 typedefed to a 64 bit type "void*" the crash does not happen [3]. (Just tested if the crash happens anymore, nothing further tested.) Basically it seems related to upstream issue [1]. So, I assume, the 32bit builds may work as expected. Kind regards, Bernahrd [1] https://github.com/cebix/macemu/issues/173 [2] (gdb) bt #0 0x000055f8148a580f in do_get_mem_word (a=0x100000000) at ./src/Unix/./sysdeps.h:428 #1 0x000055f8148a580f in get_word (addr=3200692224) at ./src/Unix/../uae_cpu/memory.h:143 #2 0x000055f8148a580f in m68k_disasm(unsigned int, unsigned int*, int) (addr=<optimized out>, nextpc=nextpc@entry=0x7f748bcbce74, cnt=0, cnt@entry=1) at ./src/Unix/../uae_cpu/newcpu.cpp:1440 #3 0x000055f8148a5e26 in m68k_dumpstate(unsigned int*) (nextpc=nextpc@entry=0x7f748bcbce74) at ./src/Unix/../uae_cpu/memory.h:171 #4 0x000055f8148a2427 in sigsegv_dump_state(sigsegv_info_t*) (sip=<optimized out>) at ./src/Unix/main_unix.cpp:287 #5 0x000055f814894a61 in handle_badaccess (sip=<optimized out>, scp=0x7f748bcbcf00) at ./src/Unix/../CrossPlatform/sigsegv.cpp:2651 #6 0x000055f814894a61 in sigsegv_handler(int, siginfo_t*, void*) (sig=<optimized out>, sip=<optimized out>, scp=0x7f748bcbcf00) at ./src/Unix/../CrossPlatform/sigsegv.cpp:2864 #7 0x00007f74909b7730 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x000055f8148ef4f5 in ip_slowtimo () at ./src/Unix/../slirp/ip_input.c:453 #9 0x000055f8148ee265 in slirp_select_poll (readfds=readfds@entry=0x7f748bcbd400, writefds=writefds@entry=0x7f748bcbd480, xfds=xfds@entry=0x7f748bcbd500) at ./src/Unix/../slirp/slirp.c:368 #10 0x000055f81489c797 in slirp_receive_func(void*) (arg=<optimized out>) at ./src/Unix/ether_unix.cpp:836 #11 0x00007f74909acfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486 #12 0x00007f748f9e482f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) list ip_input.c:435,460 435 436 /* 437 * IP timer processing; 438 * if a timer expires on a reassembly 439 * queue, discard it. 440 */ 441 void 442 ip_slowtimo() 443 { 444 register struct ipq *fp; 445 446 DEBUG_CALL("ip_slowtimo"); 447 448 fp = (struct ipq *) ipq.next; 449 if (fp == 0) 450 return; 451 452 while (fp != &ipq) { 453 --fp->ipq_ttl; 454 fp = (struct ipq *) fp->next; 455 if (((struct ipq *)(fp->prev))->ipq_ttl == 0) { 456 ipstat.ips_fragtimeout++; 457 ip_freef((struct ipq *) fp->prev); 458 } 459 } 460 } [3] diff -Nurp orig/basilisk2-0.9.20120331/src/slirp/ip.h try1/basilisk2-0.9.20120331/src/slirp/ip.h -typedef caddr32_t ipqp_32; -typedef caddr32_t ipasfragp_32; +typedef void* ipqp_32; +typedef void* ipasfragp_32;
# Stretch amd64 qemu VM 2019-04-20, +contrib apt update apt dist-upgrade apt install systemd-coredump xserver-xorg lightdm openbox unzip gdb dpkg-dev devscripts mc basilisk2 basilisk2-dbgsym apt build-dep basilisk2 systemctl start lightdm mkdir /home/benutzer/source/basilisk2/orig -p cd /home/benutzer/source/basilisk2/orig apt source basilisk2 cd wget https://people.debian.org/~smarenka/d-i/m68k/cds/daily/debian-etch-m68k-m68k-netinst.iso export DISPLAY=:0 /usr/bin/BasiliskII - Serial/Network: slirp - Memory/Misc: Configure ROM path - Button "Start" set width 0 set pagination off bt ############# benutzer@debian:~$ /usr/bin/BasiliskII Basilisk II V1.0 by Christian Bauer et al. ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_card_driver returned error: Datei oder Verzeichnis nicht gefunden ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_concat returned error: Datei oder Verzeichnis nicht gefunden ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4528:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden ALSA lib conf.c:5007:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM default Reading ROM file... WARNING: Cannot open audio: No available audio device WARNING: No audio device found, audio output will be disabled. Caught SIGSEGV at address 0x7b1281a8 [IP=0x55e27ae4f0ad] D0: 00000000 D1: 00000000 D2: 00000000 D3: 00000000 D4: 00000000 D5: 00000000 D6: 00000000 D7: 00000000 A0: 00000000 A1: 00000000 A2: 00000000 A3: 00000000 A4: 00000000 A5: 00000000 A6: 00000000 A7: 00000000 USP=00000000 ISP=00000000 MSP=00000000 VBR=00000000 T=00 S=0 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=0 FP0: 0 FP1: 0 FP2: 0 FP3: 0 FP4: 0 FP5: 0 FP6: 0 FP7: 0 N=0 Z=1 I=0 NAN=0 Speicherzugriffsfehler (Speicherabzug geschrieben) # Nothing shown in dmesg root@debian:~# coredumpctl TIME PID UID GID SIG COREFILE EXE Sat 2019-04-20 16:51:15 CEST 7888 1000 1000 11 present /usr/bin/BasiliskII-nojit root@debian:~# coredumpctl gdb 7888 PID: 7888 (BasiliskII) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 11 (SEGV) Timestamp: Sat 2019-04-20 16:51:15 CEST (2min 40s ago) Command Line: /usr/bin/BasiliskII Executable: /usr/bin/BasiliskII-nojit Control Group: / Slice: -.slice Boot ID: e5db64ef73de42ffae0be59f1634b3f1 Machine ID: 9e5901179cfe4b73bc18669e6a6e0ab9 Hostname: debian Storage: /var/lib/systemd/coredump/core.BasiliskII.1000.e5db64ef73de42ffae0be59f1634b3f1.7888.1555771875000000000000.lz4 Message: Process 7888 (BasiliskII) of user 1000 dumped core. Stack trace of thread 7891: #0 0x000055e27ae05a4f n/a (BasiliskII-nojit) #1 0x000055e27ae06047 n/a (BasiliskII-nojit) #2 0x000055e27addc337 n/a (BasiliskII-nojit) #3 0x000055e27adf01d9 n/a (BasiliskII-nojit) #4 0x00007f2fca5970e0 __restore_rt (libpthread.so.0) #5 0x000055e27ae4f0ad n/a (BasiliskII-nojit) #6 0x000055e27ae4de55 n/a (BasiliskII-nojit) #7 0x000055e27adfe137 n/a (BasiliskII-nojit) #8 0x00007f2fca58d4a4 start_thread (libpthread.so.0) #9 0x00007f2fc6ecfd0f __clone (libc.so.6) Stack trace of thread 7890: #0 0x00007f2fc6ec68bd __poll (libc.so.6) #1 0x000055e27adfe23c n/a (BasiliskII-nojit) #2 0x00007f2fca58d4a4 start_thread (libpthread.so.0) #3 0x00007f2fc6ecfd0f __clone (libc.so.6) Stack trace of thread 7888: #0 0x00007f2fc6ec68bd __poll (libc.so.6) #1 0x00007f2fc3ceb150 n/a (libxcb.so.1) #2 0x00007f2fc3cecc0f n/a (libxcb.so.1) #3 0x00007f2fc3cecd81 xcb_wait_for_reply64 (libxcb.so.1) #4 0x00007f2fc6183028 _XReply (libX11.so.6) #5 0x00007f2fc61791c1 XQueryKeymap (libX11.so.6) #6 0x00007f2fca11e2cc n/a (libSDL-1.2.so.0) #7 0x00007f2fca125604 n/a (libSDL-1.2.so.0) #8 0x00007f2fca115ff3 SDL_SetVideoMode (libSDL-1.2.so.0) #9 0x000055e27adfac20 n/a (BasiliskII-nojit) #10 0x000055e27adfb224 n/a (BasiliskII-nojit) #11 0x000055e27adfbab6 n/a (BasiliskII-nojit) #12 0x000055e27addbe27 n/a (BasiliskII-nojit) #13 0x000055e27addb40f main (BasiliskII-nojit) #14 0x00007f2fc6e072e1 __libc_start_main (libc.so.6) #15 0x000055e27addbb2a n/a (BasiliskII-nojit) GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/bin/BasiliskII-nojit...(no debugging symbols found)...done. warning: core file may not match specified executable file. [New LWP 7891] [New LWP 7890] [New LWP 7888] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/bin/BasiliskII'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055e27ae05a4f in ?? () [Current thread is 1 (Thread 0x7f2fbd821700 (LWP 7891))] (gdb) bt #0 0x000055e27ae05a4f in ?? () #1 0x000055e27ae06047 in ?? () #2 0x000055e27addc337 in ?? () #3 0x000055e27adf01d9 in ?? () #4 <signal handler called> #5 0x000055e27ae4f0ad in ?? () #6 0x000055e27ae4de55 in ?? () #7 0x000055e27adfe137 in ?? () #8 0x00007f2fca58d4a4 in start_thread (arg=0x7f2fbd821700) at pthread_create.c:456 #9 0x00007f2fc6ecfd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97 Core was generated by `/usr/bin/BasiliskII'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055e27ae05a4f in m68k_disasm(unsigned int, unsigned int*, int) () [Current thread is 1 (Thread 0x7f2fbd821700 (LWP 7891))] (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 0x000055e27ae05a4f in m68k_disasm(unsigned int, unsigned int*, int) () #1 0x000055e27ae06047 in m68k_dumpstate(unsigned int*) () #2 0x000055e27addc337 in sigsegv_dump_state(sigsegv_info_t*) () #3 0x000055e27adf01d9 in sigsegv_handler(int, siginfo_t*, void*) () #4 <signal handler called> #5 0x000055e27ae4f0ad in ip_slowtimo () #6 0x000055e27ae4de55 in slirp_select_poll () #7 0x000055e27adfe137 in slirp_receive_func(void*) () #8 0x00007f2fca58d4a4 in start_thread (arg=0x7f2fbd821700) at pthread_create.c:456 #9 0x00007f2fc6ecfd0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97 (gdb) up #1 0x000055e27ae06047 in m68k_dumpstate(unsigned int*) () (gdb) #2 0x000055e27addc337 in sigsegv_dump_state(sigsegv_info_t*) () (gdb) #3 0x000055e27adf01d9 in sigsegv_handler(int, siginfo_t*, void*) () (gdb) #4 <signal handler called> (gdb) #5 0x000055e27ae4f0ad in ip_slowtimo () (gdb) disassemble ip_slowtimo Dump of assembler code for function ip_slowtimo: 0x000055e27ae4f080 <+0>: push %rbp 0x000055e27ae4f081 <+1>: push %rbx 0x000055e27ae4f082 <+2>: sub $0x8,%rsp 0x000055e27ae4f086 <+6>: testb $0x1,0x2d84c3(%rip) # 0x55e27b127550 <slirp_debug> 0x000055e27ae4f08d <+13>: jne 0x55e27ae4f0e0 <ip_slowtimo+96> 0x000055e27ae4f08f <+15>: mov 0x2d910b(%rip),%ebx # 0x55e27b1281a0 <ipq> 0x000055e27ae4f095 <+21>: lea 0x2d9104(%rip),%rbp # 0x55e27b1281a0 <ipq> 0x000055e27ae4f09c <+28>: test %rbx,%rbx 0x000055e27ae4f09f <+31>: je 0x55e27ae4f0d1 <ip_slowtimo+81> 0x000055e27ae4f0a1 <+33>: nopl 0x0(%rax) 0x000055e27ae4f0a8 <+40>: cmp %rbp,%rbx 0x000055e27ae4f0ab <+43>: je 0x55e27ae4f0d1 <ip_slowtimo+81> => 0x000055e27ae4f0ad <+45>: subb $0x1,0x8(%rbx) 0x000055e27ae4f0b1 <+49>: mov (%rbx),%ebx 0x000055e27ae4f0b3 <+51>: mov 0x4(%rbx),%eax 0x000055e27ae4f0b6 <+54>: cmpb $0x0,0x8(%rax) 0x000055e27ae4f0ba <+58>: jne 0x55e27ae4f0a8 <ip_slowtimo+40> 0x000055e27ae4f0bc <+60>: addq $0x1,0x2d913c(%rip) # 0x55e27b128200 <ipstat+64> 0x000055e27ae4f0c4 <+68>: mov 0x4(%rbx),%edi 0x000055e27ae4f0c7 <+71>: callq 0x55e27ae4e750 <ip_freef> 0x000055e27ae4f0cc <+76>: cmp %rbp,%rbx 0x000055e27ae4f0cf <+79>: jne 0x55e27ae4f0ad <ip_slowtimo+45> 0x000055e27ae4f0d1 <+81>: add $0x8,%rsp 0x000055e27ae4f0d5 <+85>: pop %rbx 0x000055e27ae4f0d6 <+86>: pop %rbp 0x000055e27ae4f0d7 <+87>: retq 0x000055e27ae4f0d8 <+88>: nopl 0x0(%rax,%rax,1) 0x000055e27ae4f0e0 <+96>: mov 0x2d8471(%rip),%rdi # 0x55e27b127558 <dfd> 0x000055e27ae4f0e7 <+103>: lea 0xae44(%rip),%rcx # 0x55e27ae59f32 0x000055e27ae4f0ee <+110>: lea 0x99fa(%rip),%rdx # 0x55e27ae58aef 0x000055e27ae4f0f5 <+117>: mov $0x1,%esi 0x000055e27ae4f0fa <+122>: xor %eax,%eax 0x000055e27ae4f0fc <+124>: callq 0x55e27adda060 <__fprintf_chk@plt> 0x000055e27ae4f101 <+129>: mov 0x2d8450(%rip),%rdi # 0x55e27b127558 <dfd> 0x000055e27ae4f108 <+136>: callq 0x55e27adda3f0 <fflush@plt> 0x000055e27ae4f10d <+141>: jmp 0x55e27ae4f08f <ip_slowtimo+15> End of assembler dump. (gdb) print/x $rbx $1 = 0x7b1281a0 benutzer@debian:~/source/basilisk2/orig$ cat -n ./basilisk2-0.9.20120331/src/slirp/ip_input.c | grep -E "^ 442" -B7 -A19 435 436 /* 437 * IP timer processing; 438 * if a timer expires on a reassembly 439 * queue, discard it. 440 */ 441 void 442 ip_slowtimo() 443 { 444 register struct ipq *fp; 445 446 DEBUG_CALL("ip_slowtimo"); 447 448 fp = (struct ipq *) ipq.next; 449 if (fp == 0) 450 return; 451 452 while (fp != &ipq) { 453 --fp->ipq_ttl; 454 fp = (struct ipq *) fp->next; 455 if (((struct ipq *)(fp->prev))->ipq_ttl == 0) { 456 ipstat.ips_fragtimeout++; 457 ip_freef((struct ipq *) fp->prev); 458 } 459 } 460 } 461 (gdb) info reg rax 0x3b3ae0d7 993714391 rbx 0x7b1281a0 2064810400 rcx 0x3b3ae0d7 993714391 rdx 0x84918 543000 rsi 0x3b3adeb8 993713848 rdi 0xab 171 rbp 0x55e27b1281a0 0x55e27b1281a0 <ipq> rsp 0x7f2fbd820360 0x7f2fbd820360 r8 0x1 1 r9 0xbec7ef0f458 13110369907800 r10 0x10090972b43ecc 4513535811141324 r11 0x4a6d4 304852 r12 0x7f2fbd820520 139843019605280 r13 0x7f2fbd820520 139843019605280 r14 0x7f2fbd8204a0 139843019605152 r15 0x7f2fbd82040c 139843019605004 rip 0x55e27ae4f0ad 0x55e27ae4f0ad <ip_slowtimo+45> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 --> pointer truncation because of 64bit to 32bit cast somewhere ? $rbx=0x 7b1281a0 $rbp=0x55e27b1281a0 benutzer@debian:~/source/basilisk2/orig$ cat -n ./basilisk2-0.9.20120331/src/slirp/ip.h | grep -E "^ 243" -A8 243 struct ipq { 244 ipqp_32 next,prev; /* to other reass headers */ 245 u_int8_t ipq_ttl; /* time for reass q to live */ 246 u_int8_t ipq_p; /* protocol of this fragment */ 247 u_int16_t ipq_id; /* sequence id for reassembly */ 248 ipasfragp_32 ipq_next,ipq_prev; 249 /* to ip headers of fragments */ 250 struct in_addr ipq_src,ipq_dst; 251 }; ./basilisk2-0.9.20120331/src/slirp/ip.h:212:typedef caddr32_t ipqp_32; benutzer@debian:~/source/basilisk2/orig$ grep caddr32_t . -Rn -C2 ./basilisk2-0.9.20120331/src/slirp/ip.h-200-#else ./basilisk2-0.9.20120331/src/slirp/ip.h-201-#if SIZEOF_CHAR_P == 4 ./basilisk2-0.9.20120331/src/slirp/ip.h:202:typedef caddr_t caddr32_t; ./basilisk2-0.9.20120331/src/slirp/ip.h-203-#else ./basilisk2-0.9.20120331/src/slirp/ip.h:204:typedef u_int32_t caddr32_t; ./basilisk2-0.9.20120331/src/slirp/ip.h-205-#endif ./basilisk2-0.9.20120331/src/slirp/ip.h-206-#endif --> both 32 bits in size - but casted to a pointer ??? https://buildd.debian.org/status/fetch.php?pkg=basilisk2&arch=amd64&ver=0.9.20120331-4%2Bb1&stamp=1489635848&raw=0 /«PKGBUILDDIR»/src/Unix/../slirp/ip_input.c: In function 'ip_slowtimo': /«PKGBUILDDIR»/src/Unix/../slirp/ip_input.c:448:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] fp = (struct ipq *) ipq.next; ^ ################ # Buster amd64 qemu VM 2019-04-20 apt update apt dist-upgrade apt install systemd-coredump xserver-xorg lightdm openbox unzip gdb dpkg-dev devscripts mc basilisk2 basilisk2-dbgsym apt build-dep basilisk2 systemctl start lightdm mkdir /home/benutzer/source/basilisk2/orig -p cd /home/benutzer/source/basilisk2/orig apt source basilisk2 cd wget https://people.debian.org/~smarenka/d-i/m68k/cds/daily/debian-etch-m68k-m68k-netinst.iso export DISPLAY=:0 /usr/bin/BasiliskII - Serial/Network: slirp - Memory/Misc: Configure ROM path - Button "Start" set width 0 set pagination off directory /home/benutzer/source/basilisk2/orig/basilisk2-0.9.20180101 bt benutzer@debian:~$ /usr/bin/BasiliskII Basilisk II V1.0 by Christian Bauer et al. Reading ROM file... Caught SIGSEGV at address 0x149c82e8 [IP=0x55f8148ef4f5] D0: 00000000 D1: 00000000 D2: 00000000 D3: 00000000 D4: 00000000 D5: 00000000 D6: 00000000 D7: 00000000 A0: 00000000 A1: 00000000 A2: 00000000 A3: 00000000 A4: 00000000 A5: 00000000 A6: 00000000 A7: 00000000 USP=00000000 ISP=00000000 MSP=00000000 VBR=00000000 T=00 S=0 M=0 X=0 N=0 Z=0 V=0 C=0 IMASK=0 FP0: 0 FP1: 0 FP2: 0 FP3: 0 FP4: 0 FP5: 0 FP6: 0 FP7: 0 N=0 Z=1 I=0 NAN=0 Speicherzugriffsfehler (Speicherabzug geschrieben) root@debian:~# coredumpctl list TIME PID UID GID SIG COREFILE EXE Sat 2019-04-20 21:44:43 CEST 29630 1000 1000 11 present /usr/bin/BasiliskII-nojit root@debian:~# coredumpctl gdb 29630 PID: 29630 (BasiliskII) UID: 1000 (benutzer) GID: 1000 (benutzer) Signal: 11 (SEGV) Timestamp: Sat 2019-04-20 21:44:43 CEST (56s ago) Command Line: /usr/bin/BasiliskII Executable: /usr/bin/BasiliskII-nojit Control Group: /user.slice/user-1000.slice/session-3.scope Unit: session-3.scope Slice: user-1000.slice Session: 3 Owner UID: 1000 (benutzer) Boot ID: 4949e7ba5d7c4003ad1cb63bc9363558 Machine ID: 32f43b50ac8c4b21941bc0b02f8e7811 Hostname: debian Storage: /var/lib/systemd/coredump/core.BasiliskII.1000.4949e7ba5d7c4003ad1cb63bc9363558.29630.1555789483000000.lz4 Message: Process 29630 (BasiliskII) of user 1000 dumped core. Stack trace of thread 29632: #0 0x000055f8148a580f do_get_mem_word (BasiliskII-nojit) #1 0x000055f8148a5e26 _Z14m68k_dumpstatePj (BasiliskII-nojit) #2 0x000055f8148a2427 sigsegv_dump_state (BasiliskII-nojit) #3 0x000055f814894a61 handle_badaccess (BasiliskII-nojit) #4 0x00007f74909b7730 __restore_rt (libpthread.so.0) #5 0x000055f8148ef4f5 ip_slowtimo (BasiliskII-nojit) #6 0x000055f8148ee265 slirp_select_poll (BasiliskII-nojit) #7 0x000055f81489c797 slirp_receive_func (BasiliskII-nojit) #8 0x00007f74909acfa3 start_thread (libpthread.so.0) #9 0x00007f748f9e482f __clone (libc.so.6) Stack trace of thread 29631: #0 0x00007f748f9d9b69 __GI___poll (libc.so.6) #1 0x000055f81489c89b poll (BasiliskII-nojit) #2 0x00007f74909acfa3 start_thread (libpthread.so.0) #3 0x00007f748f9e482f __clone (libc.so.6) Stack trace of thread 29630: #0 0x00007f748f9db777 ioctl (libc.so.6) #1 0x00007f748f84c61c n/a (libasound.so.2) #2 0x00007f748f83c84a snd_pcm_prepare (libasound.so.2) #3 0x00007f748f87d97b n/a (libasound.so.2) #4 0x00007f748f877802 snd_pcm_dmix_open (libasound.so.2) #5 0x00007f748f877b09 _snd_pcm_dmix_open (libasound.so.2) #6 0x00007f748f83b3f4 n/a (libasound.so.2) #7 0x00007f748f83ba88 n/a (libasound.so.2) #8 0x00007f748f83e8de n/a (libasound.so.2) #9 0x00007f748f8839bd _snd_pcm_softvol_open (libasound.so.2) #10 0x00007f748f83b3f4 n/a (libasound.so.2) #11 0x00007f748f83e89c n/a (libasound.so.2) #12 0x00007f748f861fae _snd_pcm_plug_open (libasound.so.2) #13 0x00007f748f83b3f4 n/a (libasound.so.2) #14 0x00007f748f83e89c n/a (libasound.so.2) #15 0x00007f748f87f694 _snd_pcm_asym_open (libasound.so.2) #16 0x00007f748f83b3f4 n/a (libasound.so.2) #17 0x00007f748f83e89c n/a (libasound.so.2) #18 0x00007f748f868e53 _snd_pcm_empty_open (libasound.so.2) #19 0x00007f748f83b3f4 n/a (libasound.so.2) #20 0x00007f748f83ba88 n/a (libasound.so.2) #21 0x00007f748f83e467 snd_pcm_open (libasound.so.2) #22 0x00007f7490938ff6 n/a (libSDL-1.2.so.0) #23 0x00007f749090cb59 SDL_OpenAudio (libSDL-1.2.so.0) #24 0x000055f81489e625 open_sdl_audio (BasiliskII-nojit) #25 0x000055f81487b4a8 _Z7InitAllPKc (BasiliskII-nojit) #26 0x000055f81487adb7 main (BasiliskII-nojit) #27 0x00007f748f90f09b __libc_start_main (libc.so.6) #28 0x000055f81487b23a _start (BasiliskII-nojit) GNU gdb (Debian 8.2.1-2) 8.2.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/bin/BasiliskII-nojit...Reading symbols from /usr/lib/debug/.build-id/ee/5d42c910735c6d73bac52ace375574e6dcb674.debug...done. done. warning: core file may not match specified executable file. [New LWP 29632] [New LWP 29631] [New LWP 29630] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/bin/BasiliskII'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055f8148a580f in do_get_mem_word (a=0x100000000) at ./src/Unix/./sysdeps.h:428 428 ./src/Unix/./sysdeps.h: Datei oder Verzeichnis nicht gefunden. [Current thread is 1 (Thread 0x7f748bcbe700 (LWP 29632))] (gdb) set width 0 (gdb) set pagination off (gdb) bt #0 0x000055f8148a580f in do_get_mem_word (a=0x100000000) at ./src/Unix/./sysdeps.h:428 #1 0x000055f8148a580f in get_word (addr=3200692224) at ./src/Unix/../uae_cpu/memory.h:143 #2 0x000055f8148a580f in m68k_disasm(unsigned int, unsigned int*, int) (addr=<optimized out>, nextpc=nextpc@entry=0x7f748bcbce74, cnt=0, cnt@entry=1) at ./src/Unix/../uae_cpu/newcpu.cpp:1440 #3 0x000055f8148a5e26 in m68k_dumpstate(unsigned int*) (nextpc=nextpc@entry=0x7f748bcbce74) at ./src/Unix/../uae_cpu/memory.h:171 #4 0x000055f8148a2427 in sigsegv_dump_state(sigsegv_info_t*) (sip=<optimized out>) at ./src/Unix/main_unix.cpp:287 #5 0x000055f814894a61 in handle_badaccess (sip=<optimized out>, scp=0x7f748bcbcf00) at ./src/Unix/../CrossPlatform/sigsegv.cpp:2651 #6 0x000055f814894a61 in sigsegv_handler(int, siginfo_t*, void*) (sig=<optimized out>, sip=<optimized out>, scp=0x7f748bcbcf00) at ./src/Unix/../CrossPlatform/sigsegv.cpp:2864 #7 0x00007f74909b7730 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0 #8 0x000055f8148ef4f5 in ip_slowtimo () at ./src/Unix/../slirp/ip_input.c:453 #9 0x000055f8148ee265 in slirp_select_poll (readfds=readfds@entry=0x7f748bcbd400, writefds=writefds@entry=0x7f748bcbd480, xfds=xfds@entry=0x7f748bcbd500) at ./src/Unix/../slirp/slirp.c:368 #10 0x000055f81489c797 in slirp_receive_func(void*) (arg=<optimized out>) at ./src/Unix/ether_unix.cpp:836 #11 0x00007f74909acfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486 #12 0x00007f748f9e482f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) list ip_input.c:435,460 435 436 /* 437 * IP timer processing; 438 * if a timer expires on a reassembly 439 * queue, discard it. 440 */ 441 void 442 ip_slowtimo() 443 { 444 register struct ipq *fp; 445 446 DEBUG_CALL("ip_slowtimo"); 447 448 fp = (struct ipq *) ipq.next; 449 if (fp == 0) 450 return; 451 452 while (fp != &ipq) { 453 --fp->ipq_ttl; 454 fp = (struct ipq *) fp->next; 455 if (((struct ipq *)(fp->prev))->ipq_ttl == 0) { 456 ipstat.ips_fragtimeout++; 457 ip_freef((struct ipq *) fp->prev); 458 } 459 } 460 } (gdb) print fp $1 = (struct ipq *) 0x149c82e0 (gdb) info reg rbx 0x149c82e0 345801440 rbp 0x55f8149c82e0 0x55f8149c82e0 <ipq>