3 qemuopts
="-hda obj/kernel.img"
9 # the [00001000] tags should have [] in them, but that's
10 # a regular expression reserved character, and i'll be damned if
11 # I can figure out how many \ i need to add to get through
12 # however many times the shell interprets this string. sigh.
17 ! '1/0 is ........!' \
18 'Incoming trap frame at 0xefffff..' \
19 'Trap frame at 0xf.......' \
20 ' trap 0x00000000 Divide error' \
23 '.00001000. free env 00001000'
26 'Welcome to the JOS kernel monitor!' \
27 'Incoming trap frame at 0xefffffbc' \
28 'Trap frame at 0xf.......' \
29 ' trap 0x00000003 Breakpoint' \
32 ! '.00001000. free env 00001000'
35 'Welcome to the JOS kernel monitor!' \
36 'Incoming trap frame at 0xefffffbc' \
37 'Trap frame at 0xf.......' \
38 ' trap 0x0000000d General Protection' \
41 '.00001000. free env 00001000'
44 'Incoming trap frame at 0xefffffbc' \
45 'Trap frame at 0xf.......' \
46 ' trap 0x0000000d General Protection' \
50 '.00001000. free env 00001000'
57 ! 'I read ........ from location 0!' \
58 '.00001000. user fault va 00000000 ip 008.....' \
59 'Incoming trap frame at 0xefffffbc' \
60 'Trap frame at 0xf.......' \
61 ' trap 0x0000000e Page Fault.*' \
63 '.00001000. free env 00001000'
65 runtest1 faultreadkernel \
66 ! 'I read ........ from location 0xf0100000!' \
67 '.00001000. user fault va f0100000 ip 008.....' \
68 'Incoming trap frame at 0xefffffbc' \
69 'Trap frame at 0xf.......' \
70 ' trap 0x0000000e Page Fault.*' \
72 '.00001000. free env 00001000' \
75 '.00001000. user fault va 00000000 ip 008.....' \
76 'Incoming trap frame at 0xefffffbc' \
77 'Trap frame at 0xf.......' \
78 ' trap 0x0000000e Page Fault.*' \
80 '.00001000. free env 00001000'
82 runtest1 faultwritekernel \
83 '.00001000. user fault va f0100000 ip 008.....' \
84 'Incoming trap frame at 0xefffffbc' \
85 'Trap frame at 0xf.......' \
86 ' trap 0x0000000e Page Fault.*' \
88 '.00001000. free env 00001000'
91 'Making sure bss works right...' \
92 'Yes, good. Now doing a wild write off the end...' \
93 '.00001000. user fault va 00c..... ip 008.....' \
94 '.00001000. free env 00001000'
97 '.00000000. new env 00001000' \
99 'i am environment 00001000' \
100 '.00001000. exiting gracefully' \
101 '.00001000. free env 00001000' \
102 'Idle loop - nothing more to do!'
104 runtest1 buggyhello \
105 '.00001000. user_mem_check assertion failure for va 0000000[01]' \
106 '.00001000. free env 00001000'
108 runtest1 buggyhello2 \
109 '.00001000. user_mem_check assertion failure for va 0....000' \
110 '.00001000. free env 00001000' \
114 '.00001000. user_mem_check assertion failure for va f0100...' \
115 '.00001000. free env 00001000'
118 keystrokes
="backtrace;exit;"
119 runtest1
-tag 'breakpoint [backtrace]' breakpoint \
120 '^Stack backtrace:' \
121 '.*user/breakpoint.c:.*' \
122 '.*lib/libmain.c:.*' \
125 keystrokes
="backtrace;exit;"
126 runtest1
-tag 'evilbreakpoint [backtrace]' evilbreakpoint \
127 '^Stack backtrace:' \
138 '.00000000. new env 00001000' \
139 '.00001000. new env 00001001' \
140 '0: I am the parent!' \
141 '9: I am the parent!' \
142 '0: I am the child!' \
143 '9: I am the child!' \
144 '19: I am the child!' \
145 '.00001000. exiting gracefully' \
146 '.00001000. free env 00001000' \
147 '.00001001. exiting gracefully' \
148 '.00001001. free env 00001001'