- 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();
|
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())) {
|
if (isRomMicroPC(pcState.microPC())) {
|
||||||
stayAtPC = false;
|
stayAtPC = false;
|
||||||
curStaticInst = microcodeRom.fetchMicroop(pcState.microPC(),
|
curStaticInst = microcodeRom.fetchMicroop(pcState.microPC(),
|
||||||
|
|||||||
@ -3,6 +3,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/VariantConfig.hpp.in
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/VariantConfig.hpp)
|
${CMAKE_CURRENT_BINARY_DIR}/VariantConfig.hpp)
|
||||||
|
|
||||||
OPTION(CONFIG_EVENT_BREAKPOINTS "Event source: Breakpoints" OFF)
|
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_MEMREAD "Event source: Memory reads" OFF)
|
||||||
OPTION(CONFIG_EVENT_MEMWRITE "Event source: Memory writes" OFF)
|
OPTION(CONFIG_EVENT_MEMWRITE "Event source: Memory writes" OFF)
|
||||||
OPTION(CONFIG_EVENT_GUESTSYS "Event source: Outbound guest-system communication" OFF)
|
OPTION(CONFIG_EVENT_GUESTSYS "Event source: Outbound guest-system communication" OFF)
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
// Event sources
|
// Event sources
|
||||||
#cmakedefine CONFIG_EVENT_BREAKPOINTS
|
#cmakedefine CONFIG_EVENT_BREAKPOINTS
|
||||||
|
#cmakedefine CONFIG_EVENT_RANGEBREAKPOINTS
|
||||||
#cmakedefine CONFIG_EVENT_MEMREAD
|
#cmakedefine CONFIG_EVENT_MEMREAD
|
||||||
#cmakedefine CONFIG_EVENT_MEMWRITE
|
#cmakedefine CONFIG_EVENT_MEMWRITE
|
||||||
#cmakedefine CONFIG_EVENT_GUESTSYS
|
#cmakedefine CONFIG_EVENT_GUESTSYS
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
#ifndef __GEM5_LISTENER_AH__
|
#ifndef __GEM5_LISTENER_AH__
|
||||||
#define __GEM5_LISTENER_AH__
|
#define __GEM5_LISTENER_AH__
|
||||||
|
|
||||||
|
#include "config/FailConfig.hpp"
|
||||||
#include "config/VariantConfig.hpp"
|
#include "config/VariantConfig.hpp"
|
||||||
|
|
||||||
#if defined(BUILD_GEM5)
|
#if defined(BUILD_GEM5) && defined(CONFIG_EVENT_BREAKPOINTS) && !defined(CONFIG_EVENT_RANGEBREAKPOINTS)
|
||||||
|
|
||||||
#include "../SALInst.hpp"
|
#include "../SALInst.hpp"
|
||||||
|
|
||||||
@ -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__
|
#endif // __GEM5_LISTENER_AH__
|
||||||
|
|||||||
Reference in New Issue
Block a user