trapasm.S
,
trap.c
,
syscall.c
,
initcode.S
,
usys.S
.
Skim
vectors.S
,
lapic.c
,
ioapic.c
,
picirq.c
.
trapasm.S
,
trap.c
,
syscall.c
,
initcode.S
,
usys.S
.
Skim
vectors.S
,
lapic.c
,
ioapic.c
,
picirq.c
.
The assigned chapter for today provides a commentary for these files, but you may find it useful to also consult:
Chapter 5 of IA-32 Intel Architecture Software Developer's Manual, Volume 3: System programming guide; you can skip sections 5.7.1, 5.8.2, 5.12.2 and 5.14. Be aware that terms such as exceptions, traps, interrupts, faults and aborts have no standard meaning.
Chapter 9 of the 1987 i386 Programmer's Reference Manual also covers exception and interrupt handling in IA32 processors.
syscall()
to catch the very first system call (e.g.,
br syscall). What values are on the stack at this point?
Submit: The output of x/37x $esp
at that
breakpoint with each value labeled as to what it is (e.g., saved
%ebp
for trap
, trapframe.eip
,
scratch space, etc.). If your stack dump doesn't reach a page
boundary, you'll have to print more than 37 words.