特定のアドレスまたは変数に式の値を記述して、実行ファイルを編集します。
このコマンドは、指定されたアドレスまたは変数に式の値を記述することにより、実行ファイルを変更します。
このコマンドを使用して、実行ディスクファイルの無効なデータや命令を修正します。テキスト、初期化データ、読み取り専用データ領域をパッチできます。bss セグメントや、スタックの場所およびレジスターの場所はディスクファイル上には存在しないため、パッチを適用することはできません。
コードに直接パッチを適用するのは危険です。ソースとターゲットが、構造体、サイズ、バイトオーダーなどに適合するように注意する必要があります。適合しない場合、アプリケーションが壊れる可能性があります。
このコマンドは、ディスク上のバイナリーファイルを変更する場合のみ使用してください。デバッグ対象のメモリーを変更するには、assign コマンドを使用します。patch コマンドの発行時にイメージが実行中の場合は、デバッグ対象のアドレス空間にある対応する場所も更新されます。ディスクへのパッチ適用が正常に行われたかどうかにかかわらず、assig コマンドが source 式と destination 式を処理できる限り、デバッグ対象は更新されます。プログラムがロード済みでも、実行が開始されていない場合、ディスクへのパッチ適用は、対応するメモリーへの割り当てが行われずに実行されます。
patch コマンドを使用する際、オリジナルのファイル名に ~backup が付けられて保存されます。これにより、必要に応じて元のバイナリーに戻すことができます。また、ファイル名に ~temp が付けられたファイルも作成されます。デバッグセッションが終了すると、デバッガーはこのファイルを削除します。