Crash in 16 bit Installshield _isdel.exe? (was: Re: Debugging crashes in 16 bit code?)

Dan Kegel 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.
- Dan

-- 
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045




More information about the wine-devel mailing list