プログラムがクラッシュしたり、ユーザーが中止したり、あるいはブレークポイントに遭遇した結果、プログラムの実行途中でユーザーインタフェースに入ってしまうことがあります。(ブレークポイントについては、「ブレークポイント」で説明します。) こういった場合には、ユーザーインタフェースは自動的にすべての CPU データレジスタの値をバッファー領域に保存します。デバッグの目的のためにこれらの値は調べたり、変更することができます。
表 6-2に SPARC のレジスタコマンドを示します。
表 6-2 SPARC レジスタコマンド表 6-3 SPARC V9 レジスタコマンド
コマンド |
スタック ダイアグラム |
説明 |
---|---|---|
%fprs %asi %pstate %tl-c %pil %tstate %tt %tba %cwp %cansave %canrestore %otherwin %wstate %cleanwin |
( -- value ) |
指定されたレジスタの値を返します。 |
.pstate |
( -- ) |
プロセッサ状態レジスタを特定書式で表示します。 |
.ver |
( -- ) |
バージョンレジスタを特定書式で表示します。 |
.ccr |
( -- ) |
%ccr レジスタを特定書式で表示します。 |
.trap-registers |
( -- ) |
トラップレジスタを表示します。 |
これらのレジスタの値はすべて保存され、to で変更できます。値の確認や変更が終わったら、go コマンドを使用してプログラムの実行を継続できます。保存したレジスタの値 (変更したものを含めて) は、(コピーして) CPU に戻され、保存されたプログラムカウンタによって指定された位置から実行が再開されます。
to を使用して %pc を変更する場合は、%npc も変更する必要があります。(set-pc の方が両レジスタを自動的に変更するので簡単です。)
SPARC V9 システムでは、N が現在のウィンドウの場合、N-1 は呼び出し元のウィンドウを指定し、N-2 は呼び出し元の呼び出し元を指定します。