ebreak
Breakpoint exception
This instruction is defined by:
Synopsis
The EBREAK instruction is used by debuggers to cause control to be transferred back to a debugging environment. Unless overridden by an external debug environment, EBREAK raises a breakpoint exception and performs no other operation.
As described in the C Standaxd Extension for Compressed Instructions, the c.ebreak instruction performs the same operation as the EBREAK instruction. |
EBREAK causes the receiving privilege mode’s epc register to be set to the address of the EBREAK instruction itself, not the address of the following instruction. As EBREAK causes a synchronous exception, it is not considered to retire, and should not increment the minstret CSR.
Execution
-
Pruned, XLEN == 64
-
Original
if (TRAP_ON_EBREAK) {
%%LINK%func;raise_precise;raise_precise%%(ExceptionCode::Breakpoint, %%LINK%func;mode;mode%%(), $pc);
} else {
%%LINK%func;eei_ebreak;eei_ebreak%%();
}
if (TRAP_ON_EBREAK) {
%%LINK%func;raise_precise;raise_precise%%(ExceptionCode::Breakpoint, %%LINK%func;mode;mode%%(), $pc);
} else {
%%LINK%func;eei_ebreak;eei_ebreak%%();
}