diff options
author | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:42 -0400 |
---|---|---|
committer | Korey Sewell <ksewell@umich.edu> | 2011-06-19 21:43:42 -0400 |
commit | 3cb23bd3a21a50577aaaa12db41d2203f4a9d6eb (patch) | |
tree | 902ba75e94bf8233fc818b0d703fcca6596ff8e9 /src/cpu | |
parent | fe3a2aa4a31756d71440d25b2fe8fcc2f8ca4c67 (diff) | |
download | gem5-3cb23bd3a21a50577aaaa12db41d2203f4a9d6eb.tar.xz |
inorder:tracing: fix fault tracing bug
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/inorder/resource.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cpu/inorder/resource.cc b/src/cpu/inorder/resource.cc index 8bc355f5c..dfca83a8f 100644 --- a/src/cpu/inorder/resource.cc +++ b/src/cpu/inorder/resource.cc @@ -348,10 +348,14 @@ Resource::squashThenTrap(int stage_num, DynInstPtr inst) inst->setSquashInfo(stage_num); setupSquash(inst, stage_num, tid); - if (inst->traceData && DTRACE(ExecFaulting)) { - inst->traceData->setStageCycle(stage_num, curTick()); - inst->traceData->setFetchSeq(inst->seqNum); - inst->traceData->dump(); + if (inst->traceData) { + if (inst->staticInst && + inst->fault != NoFault && DTRACE(ExecFaulting)) { + inst->traceData->setStageCycle(stage_num, curTick()); + inst->traceData->setFetchSeq(inst->seqNum); + inst->traceData->dump(); + } + delete inst->traceData; inst->traceData = NULL; } |