tracing: bugfix for mem dereferences at mapping boundary
As we copy a 32-bit word from the dereferenced address, we also need to check whether address+3 is also mapped. (Yes, I've seen this in the wild.) Change-Id: I43f891c56e077333670c9cb48c0ee8e9342fa41d
This commit is contained in:
@ -117,7 +117,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 (mm.isMapped(er->value())) {
|
||||
if (mm.isMapped(er->value()) && mm.isMapped(er->value() + 3)) {
|
||||
uint32_t value_deref;
|
||||
mm.getBytes(er->value(), 4, &value_deref);
|
||||
er->set_value_deref(value_deref);
|
||||
|
||||
Reference in New Issue
Block a user