[Wine]Ptrace problem on amd64? (Was: Re: Warcraft III can't find cdrom)

T.J. Zeeman tjzeeman at gmail.com
Tue Mar 1 14:33:07 CST 2005


Hi,

On Fri, 2005-02-18 at 23:44 +0000, Mike Hearn wrote:
> On Fri, 2005-02-18 at 23:34 +0100, T.J. Zeeman wrote:
> > Warcraft still complains about the CD-rom being MIA though :( I'll see
> > if I can dig up a few hints from the log this weekend.
> 
> Make sure your kernel hsa the ptrace regression fixes in.

I guess you meant the problems refered to in WWN250
(http://www.winehq.com/?issue=250). I checked and the patch there is
only for i386. I ported those to the x86_64 files (see attachments) and
tried again to no avail.

I also tried the test app as posted by Linus Torvalds here:
http://www.winehq.com/hypermail/wine-devel/2004/11/0551.html
When trying that on amd64 with the ptrace patches it does not even want
to compile (not completely surprising). In the chroot it segfaults.
A strace showed the following:

x5556c000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=32850, ...}) = 0
old_mmap(NULL, 32850, PROT_READ, MAP_PRIVATE, 3, 0) = 0x5556d000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/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\360Y\1"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1253924, ...}) = 0
old_mmap(NULL, 1260140, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x55576000
old_mmap(0x5569f000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3, 0x129000) = 0x5569f000
old_mmap(0x556a7000, 10860, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
MAP_ANONYMOUS, -1, 0) = 0x556a7000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x556aa000
set_thread_area({entry_number:-1 -> 11, base_addr:0x556aa2a0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x5556d000, 32850)               = 0
rt_sigaction(SIGTRAP, {0x8048438, [TRAP], SA_RESTART}, {SIG_DFL}, 8) = 0
mprotect(0x8048000, 4096, PROT_READ|PROT_WRITE) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++


I haven't been this deep into low level code in a long time (and that
was 8086 asm simulated on a sparc), but I thought this would work and
not segfault. Anybody around here that can comment on that? Or should I
take this to another forum to further investigate? If so, where would
you suggest I take it?

regards,
Thomas


-------------- next part --------------
A non-text attachment was scrubbed...
Name: ptrace.diff
Type: text/x-patch
Size: 2888 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-users/attachments/20050301/d1c36ddc/ptrace.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signal.diff
Type: text/x-patch
Size: 1223 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-users/attachments/20050301/d1c36ddc/signal.bin


More information about the wine-users mailing list