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>




Reply via email to