viznut / IBNIZ

A virtual machine designed for extremely compact low-level audiovisual programs.
http://viznut.fi/ibniz/
309 stars 48 forks source link

Segfaults upon startup #18

Open sxiii opened 2 years ago

sxiii commented 2 years ago

Tried on Arch (Garuda Linux, Kernel Linux rog-strix 5.15.55-2-lts #1 SMP Fri, 22 Jul 2022 23:29:06 +0000 x86_64 GNU/Linux)

Segfauls. ``` recvmsg(18, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0\17\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=20}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=4155, uid=1000, gid=1001}}], msg_controllen=32, msg_flags=0}, 0) = 20 write(16, "W", 1) = 1 read(15, "WW", 10) = 2 ppoll([{fd=15, events=POLLIN}, {fd=18, events=POLLIN}], 2, {tv_sec=29, tv_nsec=997677000}, NULL, 8) = 1 ([{fd=18, revents=POLLIN}], left {tv_sec=29, tv_nsec=997674806}) write(16, "W", 1) = 1 recvmsg(18, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="L\0\0\0\2L\0\0\0\1L\0\0\1l", iov_len=15}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=4155, uid=1000, gid=1001}}], msg_controllen=32, msg_flags=0}, 0) = 15 write(16, "W", 1) = 1 getpid() = 66377 getpid() = 66377 write(16, "W", 1) = 1 write(16, "W", 1) = 1 read(15, "WWWW", 10) = 4 sendto(18, "\0\0\0q\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0L\0\0\0\3L\0\0\0\2a\3"..., 133, MSG_NOSIGNAL, NULL, 0) = 133 read(15, 0x7ffec2e342ee, 10) = -1 EAGAIN (Resource temporarily unavailable) ppoll([{fd=15, events=POLLIN}, {fd=18, events=POLLIN}], 2, {tv_sec=29, tv_nsec=999916000}, NULL, 8) = 1 ([{fd=18, revents=POLLIN}], left {tv_sec=29, tv_nsec=840561240}) write(16, "W", 1) = 1 recvmsg(18, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0\0\0w\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=20}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=4155, uid=1000, gid=1001}}], msg_controllen=32, msg_flags=0}, 0) = 20 write(16, "W", 1) = 1 read(15, "WW", 10) = 2 ppoll([{fd=15, events=POLLIN}, {fd=18, events=POLLIN}], 2, {tv_sec=29, tv_nsec=840004000}, NULL, 8) = 1 ([{fd=18, revents=POLLIN}], left {tv_sec=29, tv_nsec=840002488}) write(16, "W", 1) = 1 recvmsg(18, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="L\0\0\0\2L\0\0\0\2L\0\0\0\0L\0\0\1mL\0\0\6\0L\0@\0\0L\0"..., iov_len=119}], msg_iovlen=1, msg_control=[{cmsg_len=28, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=4155, uid=1000, gid=1001}}], msg_controllen=32, msg_flags=0}, 0) = 119 write(16, "W", 1) = 1 mmap(NULL, 8392704, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f70007f9000 mprotect(0x7f70007fa000, 8388608, PROT_READ|PROT_WRITE) = 0 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0 clone(child_stack=0x7f7000ff8ef0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[66400], tls=0x7f7000ff9640, child_tidptr=0x7f7000ff9910) = 66400 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} --- +++ killed by SIGSEGV (core dumped) +++ Segmentation fault (core dumped) ```

Version of SDL:

[s@rog-strix src]$ sdl-config --version
1.2.52

Any hints on where to look? :)

sxiii commented 2 years ago

Seen some comments that it segfaults on AMD...

sxiii commented 2 years ago

Was able to run via Docker and X11Docker. Dockerfile:

FROM ubuntu:18.04
RUN apt update && apt install -y git gcc libsdl1.2-dev
RUN git clone https://github.com/viznut/IBNIZ
WORKDIR IBNIZ/src
RUN make

Build container: sudo docker build -t ibniz . Run via x11docker: x11docker ibniz /IBNIZ/src/ibniz --pulseaudio=host

Works, but would be nice to run it without Docker & Ubuntu.