Crash due to some fixme messages in CreateProcessA

Lionel Ulmer lionel.ulmer at free.fr
Fri Apr 20 14:54:21 CDT 2001


Hi all,

While running a program, I got a crash in the CreateProcessA, in the
following debug TRACE line :

 if (lpStartupInfo->lpDesktop)
    FIXME("(%s,...): lpStartupInfo->lpDesktop %s ignored\n", 
          name, lpStartupInfo->lpDesktop);

By running the debugger, I got this :

Wine-dbg>print *lpStartupInfo   
print *lpStartupInfo
{cb=83886080, lpReserved=*** Invalid address 0x4c000000 (_end+0xb823758)
, lpDesktop=*** Invalid address 0x4c403416 (_end+0xbc26b6e)
, lpTitle=*** Invalid address 0x70403416 (_end+0x2fc26b6e)
, dwX=1883255830, dwY=406860822, dwXSize=1107296256, dwYSize=-1795162040,
dwXCountChars=1849690049, dwYCountChars=1819042932,
dwFillAttribute=1819042862, dwFlags=791899392, wShowWindow=26988,
cbReserved2=14946, lpReserved2=*** Invalid address 0x7273752f
(_end+0x31f5ac87)
, hStdInput=409955375, hStdOutput=1107296256, hStdError=-285212600}

It means that we are seeing a very broken application where these fields
(lpDesktop and lpTitle) do not seem to be filled in propery...

Now I never tried running this application on Windows to test if it even
works, but I suppose it should work (otherwise it would not be burned on the
CD :-) ).

So what should we do ? Suppress the '%s' and replace it with a '%p' ? Add a
check on the pointer to see if it's valid ?

         Lionel

PS: BTW, why is this application that is on a win95 filesystem get run as :
Call kernel32.CreateFileA(00405070 "~inst.exe",40000000,00000000,00000000,00000002,00000080,00000000) ret=00401391 tid=080678a0
Thus leading to a "~inst.exe" not found...

-- 
		 Lionel Ulmer - http://www.bbrox.org/




More information about the wine-devel mailing list