Perintah set disable-randomization
Menentukan apakah GDB harus menonaktifkan randomisasi ruang alamat yang disediakan oleh kernel Linux sebelum memulai program yang sedang di-debug.
Sintaksis
set disable-randomization on
set disable-randomization off
show disable-randomization
set disable-randomization off
show disable-randomization
Mode
- on
- Dalam mode ini, GDB akan menonaktifkan randomisasi ruang alamat untuk proses yang sedang di-debug. Alamat variabel stack tidak akan berubah di antara sesi debugging yang berbeda. Ini adalah mode default.
- off
- Dalam mode ini, GDB tidak akan mencoba untuk menonaktifkan randomisasi ruang alamat. Jika randomisasi diaktifkan oleh kernel Linux saat ini, pointer stack untuk variabel akan memiliki nilai yang berbeda di antara sesi debugging yang berbeda.
Mode Default
Nilai default untuk pengaturan disable-randomization adalah 'on'.
Catatan
Perintah set disable-randomization hanya didukung pada Linux.
Contoh
Program C++ berikut mencetak alamat dari sebuah variabel stack:
#include
int main()
{
int localVar;
printf("Alamat dari variabel stack: %08X\n", &localVar);
return 0;
}
Jika kita menjalankannya di GDB dengan pengaturan default, alamatnya akan sama setiap kali:
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BFFFF6CC
[Inferior 1 (process 8368) exited normally]
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BFFFF6CC
[Inferior 1 (process 8371) exited normally]
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BFFFF6CC
[Inferior 1 (process 8372) exited normally]
Jika kita set disable-randomization ke off, alamatnya akan berbeda setiap kali dijalankan:
(gdb) set disable-randomization off
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BF92FB3C
[Inferior 1 (process 8376) exited normally]
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BFE16CFC
[Inferior 1 (process 8377) exited normally]
(gdb) run
Starting program: /home/testuser/randtest
Alamat dari variabel stack: BF93FE5C
[Inferior 1 (process 8378) exited normally]