Skip to contentSkip to conversation

New: Regression in ptrace (Wine) starting with 2.6.33-rc1

Bugme-new Andrew Morton 2 participants 2 messages Feb 12, 2010 3 messages not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]/

A message that is not in the archive (sent off-list or not yet received): bug-15273-10286-V0hAGp6uBxO456/isadD/[email protected]/

#2 lore raw

post-2.6.32 rerression.

Quoted 76 lines · On Thu, 11 Feb 2010 16:21:38 GMT bugzilla-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq…

http://bugzilla.kernel.org/show_bug.cgi?id=15273

               URL: http://git.kernel.org/?p=linux/kernel/git/torvalds/lin
                    ux-2.6.git;a=commit;h=72f674d203cd230426437cdcf7dd6f68
                    1dad8b0d
           Summary: Regression in ptrace (Wine) starting with 2.6.33-rc1
           Product: Process Management
           Version: 2.5
    Kernel Version: 2.6.33-rc
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: high
          Priority: P1
         Component: Other
        AssignedTo: process_other-ztI5WcYan/[email protected]
        ReportedBy: [email protected]
        Regression: Yes

2.6.33-rc1 broke ptrace for Wine, specifically the setting of the debug registers. This is visible in the Wine ntdll exception tests failing on 2.6.33-rcX while they work just fine in 2.6.32.

A regression test resulted in:
72f674d203cd230426437cdcf7dd6f681dad8b0d is the first bad commit commit 72f674d203cd230426437cdcf7dd6f681dad8b0d

Author: K.Prasad <[email protected]>
Date:   Mon Jun 1 23:45:48 2009 +0530

hw-breakpoints: modify Ptrace routines to access breakpoint registers

This patch modifies the ptrace code to use the new wrapper routines around
the
debug/breakpoint registers.

[ Impact: adapt x86 ptrace to the new breakpoint Api ]

:040000 040000 f72ff4760c3fa1dffcd72494e77bee2c76039505
b60d5fe2088ff635568e800d5759a0b373b5e439 M arch

The first ntdll exception test in test_exceptions()
http://source.winehq.org/git/wine.git/?a=blob;f=dlls/ntdll/tests/exception.c;h=9149b6961764dec31a0af5cd3b93ab3072703dbb;hb=312e4f6b235a468f8bf764101a5b97cf34dd4143#l594
run_exception_test(dreg_handler, NULL, &segfault_code, sizeof(segfault_code),
0);
produces (make exception.ok) the output:
err:seh:setup_exception_record stack overflow 932 bytes in thread 0009 eip
7bc3c97f esp 00240f8c stack 0x240000-0x241000-0x340000
The stack overflow is detected by the ntdll internal function setup_exception_record()
http://source.winehq.org/git/wine.git/?a=blob;f=dlls/ntdll/signal_i386.c;h=4eccb61954c43d75144575411313d59405decfc3;hb=312e4f6b235a468f8bf764101a5b97cf34dd4143#l1495
which aborts the thread.
The problem happens on both i386 (Intel Atom CPU) as well as on x86_64 (Intel Q9450); the stack overflow bytes differ though but are always the same for each box.

All the ntdll exception tests run just fine with 2.6.32 and older kernels. For a summary of the ntdll exception tests please see
http://test.winehq.org/data/tests/ntdll:exception.html in the Wine column.

thanks
bye
michael

Signature · 3 lines
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

A message that is not in the archive (sent off-list or not yet received): 20100211222058.321448c0.akpm-de/[email protected]