ebreak
lyszt.net 更详细地介绍了 ebreak 和其他 RISC-V 指令。
描述
ebreak 会停止程序。这个名字是 environment break 的缩写。它标记了调试器取得控制权的点,而此模拟器会在该行暂停执行。该形式不接受操作数。
ebreak
处理器在此处停止,其后的行不会运行。寄存器和内存保留其值,因此之后可以检查断点处的状态。使用服务 10 的 ecall 会正常结束程序,而 ebreak 会在选定的位置停止程序。
RISC-V 手册将 ebreak 描述为将控制权交还给调试环境,并将其与向环境请求服务的 ecall 一起定义。两者都会引发精确的请求陷阱,即有意将控制权转移给环境。
示例将 t0 设为 1 并运行 ebreak。其后的 li 永远不会运行,因此 t0 保持为 1。
示例
li t0, 1 ebreak # the program stops here li t0, 2 # never reached
