misc: Segmentation Fault during O3PipeView execution
During the O3PipeView execution, a potential invalid iterator is used to Update the instruction storeTick field. If the store_idx iterator is the first() of the StoreQueue, the corresponding instruction is removed from the queue, leaving the iterator invalid and not usable in the TRACING_ON block. This patch uses the store_inst variable to access (and update) the instruction tick, instead of the (potential) invalid one. Change-Id: I671052ef282b9048e5239da8629b89e8afa86bf0 Reviewed-on: https://gem5-review.googlesource.com/c/16322 Maintainer: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
@@ -999,8 +999,8 @@ LSQUnit<Impl>::completeStore(typename StoreQueue::iterator store_idx)
|
||||
|
||||
#if TRACING_ON
|
||||
if (DTRACE(O3PipeView)) {
|
||||
store_idx->instruction()->storeTick =
|
||||
curTick() - store_idx->instruction()->fetchTick;
|
||||
store_inst->storeTick =
|
||||
curTick() - store_inst->fetchTick;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user