http://bugs.winehq.org/show_bug.cgi?id=1942
Summary: wine segfaults immediately upon launch Product: Wine Version: 20031212 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: critical Priority: P2 Component: wine-binary AssignedTo: wine-bugs@winehq.org ReportedBy: jbrown106@swift-mail.com
When I invoke wine, it segfaults. Immediately. Every single time. Example:
wine notepad.exe
Segmentation fault
wine
Segmentation fault
wine --version
Segmentation fault
(P.S. In case the version of wine I used doesnt show up on the form, its wine-20031212 compiled straight from the source. And yes recompiling wine does nothing to fix this problem.)
This is the output from my uname, in case that helps in identifying the error. I use glibc 2.3.2-97 (installed from a Redhat rpm).
uname -a
Linux jbrown.mylinuxbox.org 2.4.18 #13 Mon Jan 13 13:57:05 EST 2003 i586 unknown
I searched for this problem but the closest bug I could find was bug #148 - "wine segfault on launch". My guess is that this is not the same bug, because wine does not get as far as starting wineserver, and when I load it up manually (which appears to work without a hitch) wine still segfaults.
Below is the output from gdb and strace. I can't make any sense out of it.
gdb:
gdb wine
tgetent: warning: termcap entry too long GNU gdb 4.17.0.11 with Linux support Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux"... tgetent: warning: termcap entry too long (gdb) run Starting program: /usr/local/bin/wine [New Thread 30536] [New Thread 30528] [New Thread 30537] Cannot access memory at address 0x40053008. (gdb) bt #0 0x40000ab0 in _start () (gdb) step Single stepping until exit from function pthread_handle_sigrestart, which has no line number information. Cannot access memory at address 0x40053008. (gdb) quit The program is running. Exit anyway? (y or n) y
Error accessing memory address 0x40053008: No such process.
strace:
strace wine
execve("/usr/local/bin/wine", ["wine"], [/* 50 vars */]) = 0 uname({sys="Linux", node="jbrown.mylinuxbox.org", ...}) = 0 brk(0) = 0x11231c old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 open("/etc/ld.so.preload", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=18, ...}) = 0 old_mmap(NULL, 18, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libsafe.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\17"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=21606, ...}) = 0 old_mmap(NULL, 19816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40015000 old_mmap(0x40019000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3000) = 0x40019000 close(3) = 0 munmap(0x40014000, 18) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=74416, ...}) = 0 old_mmap(NULL, 74416, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001a000 close(3) = 0 open("/usr/local/lib/libwine.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\33\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=266523, ...}) = 0 old_mmap(NULL, 95872, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002d000 old_mmap(0x40032000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5000) = 0x40032000 old_mmap(0x40033000, 71296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40033000 close(3) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340A\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=91084, ...}) = 0 old_mmap(NULL, 331364, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40045000 old_mmap(0x40053000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe000) = 0x40053000 old_mmap(0x40054000, 269924, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40054000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\24\\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1467332, ...}) = 0 old_mmap(NULL, 1194340, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40096000 old_mmap(0x401b4000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11d000) = 0x401b4000 old_mmap(0x401b7000, 10596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401b7000 close(3) = 0 open("/lib/libdl.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\214\30"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=14048, ...}) = 0 old_mmap(NULL, 11588, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x401ba000 old_mmap(0x401bc000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x401bc000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3204\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=209640, ...}) = 0 old_mmap(NULL, 136352, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x401bd000 old_mmap(0x401de000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x401de000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 munmap(0x4001a000, 74416) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 setrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) = 0 getpid() = 24914 rt_sigaction(SIGRTMIN, {0x4004db64, [], SA_RESTORER, 0x400bcc38}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x4004da48, [], SA_RESTORER, 0x400bcc38}, NULL, 8) = 0 rt_sigaction(SIGRT_2, {0x4004dbec, [], SA_RESTORER, 0x400bcc38}, NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0 _sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbffff0a4, 32, (nil), 0}) = 0 readlink("/proc/self/exe", "/usr/local/bin/wine", 4095) = 19 brk(0) = 0x11231c brk(0x13331c) = 0x13331c brk(0x134000) = 0x134000 open("/etc/libsafe.exclude", O_RDONLY) = -1 ENOENT (No such file or directory) brk(0x133000) = 0x133000 pipe([3, 4]) = 0 clone(child_stack=0x114338, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 24916 write(4, "\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 148) = 148 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 write(4, "`0\5@\0\0\0\0\0\0\0\0x\16\21\0\0\0\0\0\0\0\0\200\0\0\0"..., 148) = 148 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 rt_sigsuspend([] <unfinished ...> --- SIGRTMIN (Unknown signal 32) @ 0 (0) --- <... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call) sigreturn() = ? (mask now [RTMIN]) rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 rt_sigsuspend([] <unfinished ...> --- SIGRTMIN (Unknown signal 32) @ 0 (0) --- <... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call) sigreturn() = ? (mask now [RTMIN]) write(4, "`0\5@\1\0\0\0\2@\0\0\210q\4@x6\1@\0\0\0\200\0\0\0\0\0\0"..., 148) = 148 write(4, "`0\5@\2\0\0\0\0\0\0\0\307\343\2@\204\343\2@ \0\0\0008C"..., 148) = 148 rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0 rt_sigsuspend([] <unfinished ...> --- SIGRTMIN (Unknown signal 32) @ 0 (0) --- <... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call) sigreturn() = ? (mask now [RTMIN]) waitpid(24916, NULL, __WCLONE) = 24916 close(4) = 0 close(3) = 0 getpid() = 24914 getrlimit(RLIMIT_STACK, {rlim_cur=2044*1024, rlim_max=RLIM_INFINITY}) = 0 setrlimit(RLIMIT_STACK, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0 rt_sigaction(SIGRTMIN, {SIG_DFL}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {SIG_DFL}, NULL, 8) = 0 rt_sigaction(SIGRT_2, {SIG_DFL}, NULL, 8) = 0 execve("/usr/local/bin/wine-kthread", ["/usr/local/bin/wine-kthread"], [/* 50 vars */]) = 0 uname({sys="Linux", node="jbrown.mylinuxbox.org", ...}) = 0 brk(0) = 0x10118000 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 open("/etc/ld.so.preload", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=18, ...}) = 0 old_mmap(NULL, 18, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libsafe.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\17"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=21606, ...}) = 0 old_mmap(NULL, 19816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40015000 old_mmap(0x40019000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3000) = 0x40019000 close(3) = 0 munmap(0x40014000, 18) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=74416, ...}) = 0 old_mmap(NULL, 74416, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001a000 close(3) = 0 open("/usr/local/lib/libwine.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\33\0\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=266523, ...}) = 0 old_mmap(NULL, 95872, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002d000 old_mmap(0x40032000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x5000) = 0x40032000 old_mmap(0x40033000, 71296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40033000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\24\\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1467332, ...}) = 0 old_mmap(NULL, 1194340, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40045000 old_mmap(0x40163000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11d000) = 0x40163000 old_mmap(0x40166000, 10596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40166000 close(3) = 0 open("/lib/libdl.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\214\30"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=14048, ...}) = 0 old_mmap(NULL, 11588, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40169000 old_mmap(0x4016b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x4016b000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\3204\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=209640, ...}) = 0 fstat64(3, {st_mode=S_IFREG|0755, st_size=209640, ...}) = 0 old_mmap(NULL, 136352, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4016c000 old_mmap(0x4018d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x4018d000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++