c***@CSIC.UMD.EDU
2005-04-04 16:00:31 UTC
I'm pretty sure your
dynamic stack
expansion is busted,
i.e. when you
expand the stack,
the data you read
from the new stack
page is garbage.
Print a message in
the page fault
handler as to where
the fault is (to
make sure it's a
stack expansion
request), and also
make sure you
allocate a fresh
page for the stack
and you glue it
correctly under the
previous stack page
(as I said in the
recitation).
The first stack page
should go at virtual
address FFFFE000,
the second
at FFFFD000, and so
on.
The program counter
where it crashes
won't tell you much
because I'm
almost sure by
reading garbage off
the stack you
accidentally jump
into
a halting/endless
loop.
If this helps,
please print a
message on the
newsgroup and in the
future
ask these question
on the newsgroup so
that others benefit
from the
response (or you get
a response from
someone that has
solved the
problem
already).
Iulian
Kursad and I
the problem.
shell, instead of
after several page
page where the
system
be? Thanks in
dynamic stack
expansion is busted,
i.e. when you
expand the stack,
the data you read
from the new stack
page is garbage.
Print a message in
the page fault
handler as to where
the fault is (to
make sure it's a
stack expansion
request), and also
make sure you
allocate a fresh
page for the stack
and you glue it
correctly under the
previous stack page
(as I said in the
recitation).
The first stack page
should go at virtual
address FFFFE000,
the second
at FFFFD000, and so
on.
The program counter
where it crashes
won't tell you much
because I'm
almost sure by
reading garbage off
the stack you
accidentally jump
into
a halting/endless
loop.
If this helps,
please print a
message on the
newsgroup and in the
future
ask these question
on the newsgroup so
that others benefit
from the
response (or you get
a response from
someone that has
solved the
problem
already).
Iulian
Hi Iulian,
I have a question
about Project4.I have a question
Kursad and I
couldn't seem to
figure out where isthe problem.
Anyway, when I run
"rec.exe 300" inshell, instead of
crashing, the
program freezesafter several page
faults. And
there's no specificpage where the
system
freezes.
"calling recurse
300"calling recurse
calling recurse
299...
calling recurse
290calling recurse
calling rec
"
Do you know where
the problems could"
Do you know where
be? Thanks in
advance.