home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.os2.misc
- Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!caen!destroyer!ubc-cs!unixg.ubc.ca!kakwa.ucs.ualberta.ca!access.usask.ca!ccu.umanitoba.ca!ccu!buhr
- From: buhr@umanitoba.ca (Kevin Andrew Buhr)
- Subject: Help needed understanding OS/2 register dumps
- Message-ID: <BUHR.92Aug21154328@ccu.umanitoba.ca>
- Sender: news@ccu.umanitoba.ca
- Nntp-Posting-Host: ccu.umanitoba.ca
- Organization: University of Manitoba, Canada
- Date: Fri, 21 Aug 1992 21:43:28 GMT
- Lines: 84
-
- Sorry to sound Newbie-esque, but I'm a little confused by the OS/2
- register dumps displayed for SYS3172 (A program caused exception ...)
- and SYS3175 (A program generated an access violation at ...) system
- errors.
-
- We often get errors like this when using Lotus 1-2-3, Wordperfect for
- Windows, and Procomm Plus for Windows. The errors vary slightly, but
- they all occur at the same EIP (though the CS is sometimes slightly
- different, like 217 instead of 277, suggesting perhaps that the error
- is occurring at various points during program initialization or maybe just
- that OS/2 is supplying slightly different selectors for whatever
- reason).
-
- The errors are usually access violations, but witness the following:
-
- SYS3172
- A program caused exception c0000005 at 0000f426
- The system could not dispatch the exception. The program was
- terminated without running exception handlers.
- P1=00000008 P2=00000434 P3=XXXXXXXX P4=XXXXXXXX
- EAX=469f154f EBX=00000000 ECX=00000000 EDX=00000004
- ESI=00000256 EDI=0000a1a0
- DS=154f DSACC=00f3 DSLIM=0000d60f
- ES=010f ESACC=00f3 ESLIM=0000d61f
- FS=bf4e FSACC=00f3 FSLIM=00002ec9
- GS=bf56 GSACC=00f3 GSLIM=00001ed7
- CS:EIP=0277:00005176 CSACC=00fb CSLIM=00007faf
- SS:ESP=0436:00004e48 SSACC=00f3 SSLIM=0000064f
- EBP=00000000 FLG=00000636
-
- Now, when OS/2 crashes really hard, it tells me I have an 048600b4,
- which probably means the B4 stepping, if that makes any difference.
- The box is a PS/2 Model 90 486.
-
- Anyway, here's what bothers me about this register dump:
-
- 1. What the heck is exception c0000005? How does one go
- about generating an exception c0000005 even if one *wants*
- to? In my sheltered experience, exceptions are numbered
- by referring to the vector they are normally dispatched
- to. For example, the BOUND exception would be referred to
- as exception 5. No wonder OS/2 can't dispatch exception
- c00000005: with that many vectors, it would have no room
- for programs. ;-)
-
- Is this some clever way of combining an error code *and*
- exception number in the same number? If so, I can't
- decode it. Is the top word normally ignored, suggesting
- that a BOUND exception occurred? How could this possibly
- make any sense? As I've said, I normally get "access
- violations" at this address. Why would a BOUND
- instruction cause these?
-
- 2. What are P1, P2, P3, and P4? Neither P1 nor P2 is CR0,
- because they don't have bit 0 set. Are they some subset
- of the control register bits? Are they coprocessor control
- registers? Are they test registers? Are they exception
- error codes? I can't interpret them as any of these.
-
- 3. The exception occured "at 0000f426", apparently. Is this
- a physical address? Is this a logical address?
-
- 4. I originally assumed that FLG=00000636 referred to the
- extended flags register. If so, why isn't bit 5 zero? In
- another similar error, I've been told that FLG=00000634.
- Why isn't bit 1 one? I thought these bits had these
- values at all times in all 80x86 implementations.
-
- What's going on here? Am I way off base? Is the entire dump encoded
- so only OS/2 system programmers will know what *really* happened? Is
- my CPU sick? Is my memory sick? Is my swapfile sick? Is this a
- serious OS/2 exception handling bug? And on, and on...
-
- FYI, I have the new kernel running (6.142 or 6.412--can't remember
- which) with the new OS2LDR for >16MB even though I only have 8 Megs.
- I get the PMV2001's all the time, unless I make the SWAPFILE really
- big. Still, I got these errors periodically without any of these
- fixes applied. Though, maybe they made more sense back then: I never
- checked the value of FLG or P1 when I first started getting them.
-
- Long winded replies and RTFM's and RTFAQ's are welcome--just tell me
- which FM and FAQ apply in the latter two cases.
-
- Kevin Buhr <buhr@ccu.UManitoba.CA>
-