Xenix 2.3 386 Device Driver bug
Mike Maloney
mike at isi.UUCP
Tue Jun 13 00:53:13 AEST 1989
Dear 386 and SCO device-driver gurus,
My NEC PowerMate 386/16 running Xenix 3.2 crashed with the final words:
Trap D in system - error code 1
eax: 6 ebx: 0 ecx: 0 esi: 0
edi: 0 ebp: 708 uds: 18 es: 60000
edx: A1 sl: 10206
It had been running constantly (without incident) for two and a half
weeks before this happened. The system has a smart serial card (Franklin
Telecom ICP188X) for which I wrote a device driver. The driver polls the
card for data with each read request. No interrupts are used. The board
has a 64K window of memory visible to the PC. I have it mapped at E0000.
MESSAGES(M) states that 'Trap in System' indicates that the CPU has
generated an illegal instruction trap while executing kernel or device
driver code. The intel 80386 Programmer's Reference Manual, section 9.8
says that this can happen because of:
- Debug Exceptions
- Breakpoint
- Overflow
- Two byte software interrupt
Now my questions:
1. Is the "error code 1" in the panic message above the same error code
described in section 9.7 of the intel 80386 manual? If so, then "error code 1"
indicates the EXT bit being set? If so what does this mean?
2. After a trap the CS and EIP registers point to the instruction dynamically
after the trap. Why aren't these registers included in the dump?
3. What, if anything, can be inferred from the register values above?
4. What are likely sources of traps in a bad device driver?
--
Mike Maloney Integral Systems, Inc
(301) 731-4233 5000 Philadelpha Way, Suite A,
Lanham, MD 20706
More information about the Comp.unix.xenix
mailing list