[comp.sys.ibm.pc.misc] exception #10

rreiner@yunexus.YorkU.CA (Richard Reiner) (03/28/91)

I have one small program which occasionally produces an exception #10
(not exception #13) when run under QEMM 5.11 and DESQview 2.31.
This is somewhat mysterious, since it is a very small program with
only one execution path (I know -- I wrote it), and yet it only
*sometimes*, i.e. about 1 time in 5, produces the exception.  Anyone
have any idea what this might mean?

//richard

jerry@gumby.Altos.COM (Jerry Gardner) (04/05/91)

In article <22164@yunexus.YorkU.CA> rreiner@yunexus.YorkU.CA (Richard Reiner) writes:
>I have one small program which occasionally produces an exception #10
>(not exception #13) when run under QEMM 5.11 and DESQview 2.31.
>This is somewhat mysterious, since it is a very small program with
>only one execution path (I know -- I wrote it), and yet it only
>*sometimes*, i.e. about 1 time in 5, produces the exception.  Anyone
>have any idea what this might mean?


Exception 10 is the "Invalid TSS" exception.  A TSS is a task state segment,
a data structure used by the control program (in this case DESQview/QEMM) and
the CPU to manage tasks.  Every time the processor switches tasks, it saves
the machine state for the current task into its TSS and loads the saved 
machine state for the new task from its own TSS.

Since a TSS is a data structure used by control programs, I'd assume that
DESQview would mark the memory they occupy read-only, but perhaps this
isn't the case and our program accidently overwrites one or more TSS's.

Check your code for obvious problems such as dangling pointers and if nothing
appears to be wrong, try calling Quarterdeck customer service.



-- 
Jerry Gardner, NJ6A					Altos Computer Systems
UUCP: {sun|pyramid|sco|amdahl|uunet}!altos!jerry	2641 Orchard Parkway
Internet: jerry@altos.com				San Jose, CA  95134
Help stamp out vi in our lifetime.                      (408) 432-6200