plugin/tracing: fix extended trace on umapped memory areas
When a register in the extended trace was dereferenced and the value was smaller than the memory pool size, but the address was not mapped an assertion occured and the tracing plugin terminated the simulator. Now the dereferenced memory address is checked for being mapped and not being smaller than the memory pool. Change-Id: I9ac954988ef860969679f9f360814c5e4b66f473
This commit is contained in:
@ -133,7 +133,7 @@ bool TracingPlugin::run()
|
||||
Trace_Event_Extended_Registers *er = ext.add_registers();
|
||||
er->set_id((*it)->getId());
|
||||
er->set_value(simulator.getCPU(0).getRegisterContent(*it));
|
||||
if (er->value() <= mm.getPoolSize() - 4) {
|
||||
if (mm.isMapped(er->value())) {
|
||||
uint32_t value_deref;
|
||||
mm.getBytes(er->value(), 4, &value_deref);
|
||||
er->set_value_deref(value_deref);
|
||||
|
||||
Reference in New Issue
Block a user