- Added a define which marks the use of BPRangeListener
- Gem5 now has two different implementation for breakpoints. - If only BPSingleListener are used, gem5 Breakpoints are used - If BPRangeListener are used, gem5 calls onBreakpoint() in every simulated instruction git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2003 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
@ -377,6 +377,12 @@ BaseSimpleCPU::preExecute()
|
||||
|
||||
TheISA::PCState pcState = thread->pcState();
|
||||
|
||||
// FAIL*
|
||||
#if defined(CONFIG_EVENT_BREAKPOINTS) && defined(CONFIG_EVENT_RANGEBREAKPOINTS)
|
||||
fail::ConcreteCPU* cpu = &fail::simulator.getCPU(cpuId());
|
||||
fail::simulator.onBreakpoint(cpu, instAddr(), -1);
|
||||
#endif
|
||||
|
||||
if (isRomMicroPC(pcState.microPC())) {
|
||||
stayAtPC = false;
|
||||
curStaticInst = microcodeRom.fetchMicroop(pcState.microPC(),
|
||||
|
||||
@ -3,6 +3,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/VariantConfig.hpp.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/VariantConfig.hpp)
|
||||
|
||||
OPTION(CONFIG_EVENT_BREAKPOINTS "Event source: Breakpoints" OFF)
|
||||
OPTION(CONFIG_EVENT_RANGEBREAKPOINTS "Event source: Range Breakpoints" OFF)
|
||||
OPTION(CONFIG_EVENT_MEMREAD "Event source: Memory reads" OFF)
|
||||
OPTION(CONFIG_EVENT_MEMWRITE "Event source: Memory writes" OFF)
|
||||
OPTION(CONFIG_EVENT_GUESTSYS "Event source: Outbound guest-system communication" OFF)
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
|
||||
// Event sources
|
||||
#cmakedefine CONFIG_EVENT_BREAKPOINTS
|
||||
#cmakedefine CONFIG_EVENT_RANGEBREAKPOINTS
|
||||
#cmakedefine CONFIG_EVENT_MEMREAD
|
||||
#cmakedefine CONFIG_EVENT_MEMWRITE
|
||||
#cmakedefine CONFIG_EVENT_GUESTSYS
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
#ifndef __GEM5_LISTENER_AH__
|
||||
#define __GEM5_LISTENER_AH__
|
||||
|
||||
#include "config/FailConfig.hpp"
|
||||
#include "config/VariantConfig.hpp"
|
||||
|
||||
#if defined(BUILD_GEM5)
|
||||
#if defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) && !defined(CONFIG_EVENT_RANGEBREAKPOINTS)
|
||||
|
||||
#include "../SALInst.hpp"
|
||||
|
||||
@ -27,7 +28,7 @@ aspect Gem5Listener {
|
||||
{
|
||||
System* sys = *System::systemList.begin();
|
||||
m_Breakpoint = new Gem5Breakpoint(&sys->pcEventQueue, this->m_WatchInstrPtr);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -41,6 +42,6 @@ aspect Gem5Listener {
|
||||
};
|
||||
};
|
||||
|
||||
#endif // defined(BUILD_GEM5)
|
||||
#endif // defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) && !defined(CONFIG_EVENT_RANGEBREAKPOINTS)
|
||||
|
||||
#endif // __GEM5_LISTENER_AH__
|
||||
|
||||
Reference in New Issue
Block a user