Crash in 16 bit Installshield _isdel.exe? (was: Re: Debugging crashes
in 16 bit code?)
dank at kegel.com
Sun Feb 2 15:33:09 CST 2003
Eric Pouech wrote:
> Dan Kegel wrote:
>> How does one tell what DLL contains a particular
>> segment of 16 bit code in winedbg?
> that's no longer supported in winedbg (we don't generate in Wine the
> native 16 bit DLL loading events, so we don't catch them in winedbg)
> a way to do it is to trace +module and get the address from here
> (BTW, this is on Alexandre's and my todo list for quite a while now, but
> with a low priority ATM).
OK. (I also noticed that adding +task to --debugmsg shows a few
16 bit loading stuff.) Here are what appear to be the interesting
lines from a log from a run of Resource Hunter's installer,
in which it crashed during cleanup:
510 trace:module:NE_OpenFile opened 'F:\rchtemp\SETUP.EXE' -> 0x64
511 trace:module:NE_LoadSegment Loading segment 2, hSeg=0267, flags=0c43
516 trace:module:NE_StartTask Starting main program: cs:ip=025f:7564 ds=0267 ss:sp=0267:5700
8956 trace:module:MODULE_LoadModule16 Loaded module 'F:\rchtemp\_ISDEL.EXE' at 0x0447.
9028 trace:module:NE_OpenFile opened 'F:\RCHTEMP\_ISDEL.EXE' -> 0x78
9029 trace:module:NE_LoadSegment Loading segment 2, hSeg=048e, flags=0c53
9030 trace:module:NE_StartTask Starting main program: cs:ip=0487:079c ds=048f ss:sp=048f:1782
11586 trace:file:FILE_DoOpenFile C:\WINDOWS\_iserr31.ini OF_READ OF_SHARE_COMPAT OF_DELETE
11590 trace:module:NE_GetOrdinal (0447,'__GP')
11591 wine: Unhandled exception, starting debugger...
11732 Unhandled exception: privileged instruction in 16-bit code (0487:09b7).
I had expected the segment number from the exception (0487) would
show up on some log line with a DLL filename on it, but the only match was the
one on the 2nd NE_startTask. But what the heck, it seems likely
in this case that the crash is in the installshield cleanup
program _isdel.exe. I guess if I wanted to continue tracking this
down, I might set a breakpoint on NE_StartTask, and turn on
+all when _isdel.exe starts running.
I probably don't have energy for that today, so if someone
else wants to take a crack at this apparent InstallShield crash, please do.
Maybe I'll go back to the other 16 bit crash I had and see if
turning on +module gives me enough to figure out what DLL or exe is
crashing there, too.
>> Which FM did I fail to R?
> ... chapter 2 of developer guide
OK, I've reviewed that, thanks. Hmm, if I come up with a good recipie for
"figuring out what 16 bit DLL or EXE contains the code that crashed",
maybe I should add a note to the developer
guide about it; that might help until you and/or Alexadre get
around to the item on your todo list you mentioned above.
More information about the wine-devel