共有ライブラリをデバッグしています。 LinuxホストでASLRを有効にすると、バグが発生する可能性がありますが、ASLRが無効になっているとバグは消えます。ランダムなアドレスに共有ライブラリをロードするようにgdbに指示する
gdbで共有ライブラリをさらにデバッグします。しかし、共有されたライブラリを常に固定アドレスにロードしていることがわかったので、バグは消えました。
このgdbの機能を無効にする方法はありますか?
共有ライブラリをデバッグしています。 LinuxホストでASLRを有効にすると、バグが発生する可能性がありますが、ASLRが無効になっているとバグは消えます。ランダムなアドレスに共有ライブラリをロードするようにgdbに指示する
gdbで共有ライブラリをさらにデバッグします。しかし、共有されたライブラリを常に固定アドレスにロードしていることがわかったので、バグは消えました。
このgdbの機能を無効にする方法はありますか?
このgdbの機能を無効にする方法はありますか?
はい、プログラムを実行する前にset disable-randomization off
とすることができます。開始実行変わらずの行動を残す
オフ
設定を無効に無作為化: gdb documentationのこの部分を参照してください。いくつかのバグは、特定の アドレスでプログラムがロードされた場合にのみ、醜いヘッドを後退させます。 GDBの下でプログラムを実行するときにバグが消えたら、デフォルトでGDBが のランダム化をGNU/Linuxなどのランダム化のアドレス で無効にしているので、 スタンドアロンプログラムのバグがあります。 set disable-randomization offを使用して、 にそのような難解なバグを再現させてください。