Wine64 debugger

Peter Urbanec at
Wed Aug 18 10:30:25 CDT 2010

On 18/08/10 01:51, Marcus Meissner wrote:
> On Wed, Aug 18, 2010 at 01:00:35AM +1000, Peter Urbanec wrote:
>> I'm seeing crashes in FindNextFileW/FindNextFileA due to what
>> looks like a 64 bit HANDLE value being truncated to 32 bits.
> Check if your code uses "int" in its FindNextFile or findfirst things.

I had a good look at the wine source code as well as those parts of the 
application source code that I can get access to and it all looks good 
as far as correctly using HANDLE type to store HANDLE values. 
Unfortunately, the application in question also makes use of FLEXlm 
libraries from Macrovision and these binary blobs appear to be buggy. 
All the symptoms point to the FLEXlm code storing the 64-bit HANDLE 
value in a 32-bit int - this is evidenced by sign extension on some of 
the values.

Of course, the initial cause and the issues with the debugger are 
essentially unrelated. I have sent some sample test binaries to Eric, to 
reproduce the debugger issue.

The buggy Win64 application is another story. It looks like Win64 must 
most of the time return HANDLE values that fit within 31 bits, because 
from what I hear, Windows users go through thousands of invocations of 
this app without seeing any issues.

I wonder if there is a way of making wine allocate the memory for the 
object pointed to by the HANDLE somewhere in the lower part of the 
address space. That ought to mitigate this particular application bug 
and bring the compatibility a little closer to what's observed under Win64.

More information about the wine-devel mailing list