変数の値を変更するには、式による代入を評価します。See section 式。 例えば、
print x=4
は、変数 x
に対して値4を格納し、代入後の式の値 (この場合4) を
表示します。
インクリメント用のオペレータである `++' や `--'、そして 複合オペレータの `+=' や `<<=' といった、C言語の全ての代入用 オペレータがサポートされています。
もし、あなたが代入後の値を見ることに興味がない場合は、 `print' コマンドのかわりに `set' コマンドを使います。 `set' は、式の値が表示されず、また、変数履歴 (see section 変数値の履歴) にも記録が残らないことを除けば、`print' コマンドと同じです。 副作用としては、式が評価されるだけです。
`set' コマンドに渡す引数の文字列の最初の部分が `set' の サブコマンドと一致する場合、`set variable' コマンドを使用する 必要があることに注意して下さい。このコマンドは、サブコマンドと 一致する変数を `set' で設定するためのものです。
GDB は、C言語よりも、代入に対してより絶対的な変換を許可しています; あなたは、整数値を自由にポインタ値などに設定でき、任意の構造体は、 同じ長さかそれより短い、他の構造体に変換することができます。
値をメモリ内の気まぐれな位置に設定したい場合、`{...}' の
構造を使うことによって、指定されたアドレスに指定された型の値を
生成することができます(see section 式)。
例えば、{int}0x83040
はメモリ位置 0x83040 を整数値とみなして
参照します(これは、正確なサイズとメモリ内の正確な表現を意味しています)。
また、
set {int}0x83040 = 4
は、そのメモリ位置に値4を設定します。