home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / os / os2 / misc / 27949 < prev    next >
Encoding:
Text File  |  1992-08-21  |  4.3 KB  |  96 lines

  1. Newsgroups: comp.os.os2.misc
  2. 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
  3. From: buhr@umanitoba.ca (Kevin Andrew Buhr)
  4. Subject: Help needed understanding OS/2 register dumps
  5. Message-ID: <BUHR.92Aug21154328@ccu.umanitoba.ca>
  6. Sender: news@ccu.umanitoba.ca
  7. Nntp-Posting-Host: ccu.umanitoba.ca
  8. Organization: University of Manitoba, Canada
  9. Date: Fri, 21 Aug 1992 21:43:28 GMT
  10. Lines: 84
  11.  
  12. Sorry to sound Newbie-esque, but I'm a little confused by the OS/2
  13. register dumps displayed for SYS3172 (A program caused exception ...)
  14. and SYS3175 (A program generated an access violation at ...) system
  15. errors.
  16.  
  17. We often get errors like this when using Lotus 1-2-3, Wordperfect for
  18. Windows, and Procomm Plus for Windows.  The errors vary slightly, but
  19. they all occur at the same EIP (though the CS is sometimes slightly
  20. different, like 217 instead of 277, suggesting perhaps that the error
  21. is occurring at various points during program initialization or maybe just
  22. that OS/2 is supplying slightly different selectors for whatever
  23. reason).
  24.  
  25. The errors are usually access violations, but witness the following:
  26.  
  27.     SYS3172
  28.     A program caused exception c0000005 at 0000f426
  29.     The system could not dispatch the exception.  The program was
  30.     terminated without running exception handlers.
  31.     P1=00000008 P2=00000434 P3=XXXXXXXX P4=XXXXXXXX
  32.     EAX=469f154f EBX=00000000 ECX=00000000 EDX=00000004
  33.     ESI=00000256 EDI=0000a1a0
  34.     DS=154f DSACC=00f3 DSLIM=0000d60f
  35.     ES=010f ESACC=00f3 ESLIM=0000d61f
  36.     FS=bf4e FSACC=00f3 FSLIM=00002ec9
  37.     GS=bf56 GSACC=00f3 GSLIM=00001ed7
  38.     CS:EIP=0277:00005176 CSACC=00fb CSLIM=00007faf
  39.     SS:ESP=0436:00004e48 SSACC=00f3 SSLIM=0000064f
  40.     EBP=00000000 FLG=00000636
  41.  
  42. Now, when OS/2 crashes really hard, it tells me I have an 048600b4,
  43. which probably means the B4 stepping, if that makes any difference.
  44. The box is a PS/2 Model 90 486.
  45.  
  46. Anyway, here's what bothers me about this register dump:
  47.  
  48.     1.  What the heck is exception c0000005?  How does one go
  49.         about generating an exception c0000005 even if one *wants*
  50.         to?  In my sheltered experience, exceptions are numbered
  51.         by referring to the vector they are normally dispatched
  52.         to.  For example, the BOUND exception would be referred to
  53.         as exception 5.  No wonder OS/2 can't dispatch exception
  54.         c00000005:  with that many vectors, it would have no room
  55.         for programs.  ;-)
  56.  
  57.         Is this some clever way of combining an error code *and*
  58.         exception number in the same number?  If so, I can't
  59.         decode it.  Is the top word normally ignored, suggesting
  60.         that a BOUND exception occurred?  How could this possibly
  61.         make any sense?  As I've said, I normally get "access
  62.         violations" at this address.  Why would a BOUND
  63.         instruction cause these?
  64.  
  65.     2.  What are P1, P2, P3, and P4?  Neither P1 nor P2 is CR0,
  66.         because they don't have bit 0 set.  Are they some subset
  67.         of the control register bits?  Are they coprocessor control
  68.         registers?  Are they test registers?  Are they exception
  69.         error codes?  I can't interpret them as any of these.
  70.  
  71.     3.  The exception occured "at 0000f426", apparently.  Is this
  72.         a physical address?  Is this a logical address?
  73.  
  74.     4.  I originally assumed that FLG=00000636 referred to the
  75.         extended flags register.  If so, why isn't bit 5 zero?  In
  76.         another similar error, I've been told that FLG=00000634.
  77.         Why isn't bit 1 one?  I thought these bits had these
  78.         values at all times in all 80x86 implementations.
  79.  
  80. What's going on here?  Am I way off base?  Is the entire dump encoded
  81. so only OS/2 system programmers will know what *really* happened?  Is
  82. my CPU sick?  Is my memory sick?  Is my swapfile sick?  Is this a
  83. serious OS/2 exception handling bug?  And on, and on...
  84.  
  85. FYI, I have the new kernel running (6.142 or 6.412--can't remember
  86. which) with the new OS2LDR for >16MB even though I only have 8 Megs.
  87. I get the PMV2001's all the time, unless I make the SWAPFILE really
  88. big.  Still, I got these errors periodically without any of these
  89. fixes applied.  Though, maybe they made more sense back then:  I never
  90. checked the value of FLG or P1 when I first started getting them.
  91.  
  92. Long winded replies and RTFM's and RTFAQ's are welcome--just tell me
  93. which FM and FAQ apply in the latter two cases.
  94.  
  95. Kevin Buhr <buhr@ccu.UManitoba.CA>
  96.