diff --git a/src/core/sal/perf/BreakpointBuffer.cc b/src/core/sal/perf/BreakpointBuffer.cc index 3b60244e..9214959b 100644 --- a/src/core/sal/perf/BreakpointBuffer.cc +++ b/src/core/sal/perf/BreakpointBuffer.cc @@ -15,6 +15,7 @@ ResultSet& PerfVectorBreakpoints::gather(BPEvent* pData) if (pLi->isMatching(pData)) { // Update trigger IPtr: pLi->setTriggerInstructionPointer(pData->getTriggerInstructionPointer()); + pLi->setTriggerCPU(pData->getTriggerCPU()); res.add(*it); } } diff --git a/src/core/sal/perf/FastBreakpoints.ah b/src/core/sal/perf/FastBreakpoints.ah index a381368f..0abdbdea 100644 --- a/src/core/sal/perf/FastBreakpoints.ah +++ b/src/core/sal/perf/FastBreakpoints.ah @@ -60,7 +60,7 @@ aspect FastBreakpoints { // Note: "BPListener" is an abstract class anyway. fail::ListenerManager& ref = tjp->target()->m_LstList; - fail::BPEvent tmp(*(tjp->arg<0>()), *(tjp->arg<1>())); + fail::BPEvent tmp(*(tjp->arg<1>()), *(tjp->arg<2>()), *(tjp->arg<0>())); // Check for matching BPSingleListeners: fail::ResultSet& res1 = ref.getSingleListeners().gather(&tmp); diff --git a/src/core/sal/perf/FastWatchpoints.ah b/src/core/sal/perf/FastWatchpoints.ah index c6962aa3..1199654f 100644 --- a/src/core/sal/perf/FastWatchpoints.ah +++ b/src/core/sal/perf/FastWatchpoints.ah @@ -56,10 +56,11 @@ aspect FastWatchpoints { // Note: "BPListener" is an abstract class anyway. fail::ListenerManager& ref = tjp->target()->m_LstList; - #define TJPARG(i) *(tjp->arg()) - fail::MemAccessEvent tmp(TJPARG(0), TJPARG(1), TJPARG(3), - TJPARG(2) ? fail::MemAccessEvent::MEM_WRITE : fail::MemAccessEvent::MEM_READ); - #undef TJPARG + #define ARG(i) *(tjp->arg()) + fail::MemAccessEvent tmp(ARG(1), ARG(2), ARG(4), + ARG(3) ? fail::MemAccessEvent::MEM_WRITE : fail::MemAccessEvent::MEM_READ, + ARG(0)); + #undef ARG // Check for matching MemAccessListener: fail::ResultSet& res = ref.getMemoryListeners().gather(&tmp); diff --git a/src/core/sal/perf/WatchpointBuffer.cc b/src/core/sal/perf/WatchpointBuffer.cc index 3bf81894..d74b1c3c 100644 --- a/src/core/sal/perf/WatchpointBuffer.cc +++ b/src/core/sal/perf/WatchpointBuffer.cc @@ -19,6 +19,7 @@ ResultSet& PerfVectorWatchpoints::gather(MemAccessEvent* pData) pmal->setTriggerAddress(pData->getTriggerAddress()); pmal->setTriggerWidth(pData->getTriggerWidth()); pmal->setTriggerAccessType(pData->getTriggerAccessType()); + pmal->setTriggerCPU(pData->getTriggerCPU()); res.add(*it); } }