sim: Add ability to break at specific kernel function
Adds a GDB callable function that sets a breakpoint at the beginning of a kernel function.
This commit is contained in:
parent
17dbb49294
commit
71b1c6ce76
2 changed files with 17 additions and 0 deletions
|
@ -38,6 +38,8 @@
|
||||||
#include "sim/global_event.hh"
|
#include "sim/global_event.hh"
|
||||||
#include "sim/sim_events.hh"
|
#include "sim/sim_events.hh"
|
||||||
#include "sim/sim_exit.hh"
|
#include "sim/sim_exit.hh"
|
||||||
|
#include "cpu/pc_event.hh"
|
||||||
|
#include "sim/system.hh"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -87,6 +89,14 @@ schedBreak(Tick when)
|
||||||
warn("need to stop all queues");
|
warn("need to stop all queues");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
breakAtKernelFunction(const char* funcName)
|
||||||
|
{
|
||||||
|
System* curSystem = System::systemList[0];
|
||||||
|
curSystem->addKernelFuncEvent<BreakPCEvent>(funcName,
|
||||||
|
"GDB scheduled break", true);
|
||||||
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Function to cause the simulator to take a checkpoint from the debugger
|
/// Function to cause the simulator to take a checkpoint from the debugger
|
||||||
///
|
///
|
||||||
|
|
|
@ -44,6 +44,13 @@
|
||||||
*/
|
*/
|
||||||
void schedBreak(Tick when);
|
void schedBreak(Tick when);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cause the simulator to execute a breakpoint when
|
||||||
|
* the given kernel function is reached
|
||||||
|
* @param funcName the name of the kernel function at which to break
|
||||||
|
*/
|
||||||
|
void breakAtKernelFunction(const char* funcName);
|
||||||
|
|
||||||
/** Cause the simulator to return to python to create a checkpoint
|
/** Cause the simulator to return to python to create a checkpoint
|
||||||
* @param when the cycle to break
|
* @param when the cycle to break
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue