ebreak

ebreak

RISC-V アセンブリ 参考

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