diff --git a/cpu/exec_context.cc b/cpu/exec_context.cc index 20ab64bc4f..06bd741f2c 100644 --- a/cpu/exec_context.cc +++ b/cpu/exec_context.cc @@ -118,6 +118,8 @@ ExecContext::serialize(ostream &os) for (int j=0; jtop(); paramOut(os, csprintf("stackpos[%d]",j), top->name); + delete top; + stack->pop(); } } else { SERIALIZE_SCALAR(ctx); diff --git a/sim/system.cc b/sim/system.cc index 40c841ed58..9517394626 100644 --- a/sim/system.cc +++ b/sim/system.cc @@ -148,7 +148,10 @@ System::serialize(std::ostream &os) paramOut(os, csprintf("stacksize[%d]",i), size); for (int j=0; jtop(); - paramOut(os, csprintf("ctx[%d].stackpos[%d]",i,j), top->name); + paramOut(os, csprintf("ctx[%d].stackpos[%d]",i,j), + top->name); + delete top; + stack->pop(); } } }