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은의 주소를 포함하여 모든 주소를 무작위로 지정해야 libc.so
하지만 주소 __libc_start_main()
가 항상 0x00007ffff7de8060
내 Linux 컴퓨터에 있음을 알았습니다 . 왜 그렇 습니까? 뭐가 잘못 되었 니?
답변
내부 gdb
에서 프로그램을 실행할 때 gdb
주소 임의 화를 비활성화하여 디버깅을 도와줍니다. 다음 명령을 사용하여 활성화 할 수 있습니다 (다음 프로그램 실행에서 효과적 임).
set disable-randomization off