Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /home/firstlove/projects/org-ioslide/example/a.out Breakpoint 1, 0x00007ffff7de8060 in __libc_start_main () from /usr/lib/libc.so.6 (gdb) Quit (gdb) quit A debugging session is active. Inferior 1 [process 16372] will be killed. Quit anyway? (y or n) y firstlove-pc% cat /proc/sys/kernel/randomize_va_space 2 IIUC, ASLR debería aleatorizar todas las direcciones, incluida la de libc.so , pero descubrí que la dirección de __libc_start_main() siempre es 0x00007ffff7de8060 en mi máquina Linux, ¿por qué? ¿Lo que está mal?
Cuando ejecuta un programa dentro de gdb , gdb intenta ayudarlo a depurar al deshabilitar la aleatorización de direcciones. Puede usar el siguiente comando para habilitarlo (a partir de la próxima ejecución del programa):
set disable-randomization off