Previous: Calling, Up: Altering


11.6 プログラムへのパッチ適用

デフォルトでは、 GDBはユーザ・プログラムの実行コードを持つファイル (あるいは、 コア・ファイル) を書き込み不可の状態でオープンします。 これにより、 マシン・コードを誤って変更してしまうことを防ぐことができます。 しかし、 ユーザ・プログラムのバイナリに意図的にパッチを適用することもできなくなってしまいます。

バイナリにパッチを適用したいのであれば、 set writeコマンドによって明示的にそのことを指定することができます。 例えば、 内部的なデバッグ・フラグを立てたり、 緊急の修正を行いたいということがあるでしょう。

set write on
set write off
set write on’を指定すると、 GDBは実行ファイル やコア・ファイル を、 読み込み、 書き込みともに可能な状態でオープンします。 ‘set write off’ (デフォルト) を指定すると、 GDBはこれらのファイルを読み込みしかできない状態でオープンします。

既にファイルをロード済みの場合、 set writeの設定を変更後、 その変更を反映させるためには、 (exec-fileコマンド 、 core-fileコマンド を使用して)、 そのファイルを再ロードしなければなりません。

show write
実行ファイル 、コア・ファイル が、 読み込みだけではなく書き込みもできる状態でオープンされる設定になっているか否かを表示します。