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
