half-life

Mike Hearn mike at theoretic.com
Sat Feb 1 14:30:43 CST 2003


> 080787e0:Call kernel32.LOCAL_Alloc(000001ff,00000002,00000068) ret=409cfbf8
> may be the offender in this case (this is the line right before err:local)

Hmmm. Maybe. I think here though this call is what is wrong:

> 080787e0:Call kernel32.CreateFileA(40758c28 "C:\\Program Files\\Half-Life\\valve\\gfx\\shell\\cb_disabled.bmp",80000000,00000003,40758b80,00000003,00000080,00000000) ret=0048e4ee
> 080787e0:Ret  kernel32.CreateFileA() retval=ffffffff ret=0048e4ee

The very first ones you pasted in fact. MSDN says that CreateFile should
return a handle to a file, but if it goes wrong it'll return
INVALID_HANDLE_VALUE. The calls to GetLastError immediately afterwards
strongly suggest that's what's happening, and in fact the retval section
is what you're interested in here: ffffffffff is -1 in hex (using twos
compliment, thanks francois!).

So basically it looks like it can't open cb_disabled.bmp, and that leads
to a cascade failure. Remember that often apps will try to recover from
an error but fail so you need to look quite a bit up the trace to
discover what's going on.

> 080787e0:Call kernel32.GetLastError() ret=0048e4fa
> 080787e0:Ret  kernel32.GetLastError() retval=00000002 ret=0048e4fa

And in fact the app detects it went wrong, and calls GetLastError. The
part you are interested in here is retval, which is 2. MSDN tells us
that is ERROR_FILE_NOT_FOUND, so it didn't find the file. Have a poke
around, make sure it installed correctly would be what I'd do next.

thanks -mike




More information about the wine-devel mailing list