0
run
の後にGDBでメモリマッピングが変更されるのはなぜですか?
たとえば、以下の主な機能は、最初は0x00000560にあり、その後run
の後には、0x80000560になります。GDB:実行後にメモリマッピングが変更されるのはなぜですか?
gdbを最初から実際のマッピングを示すように実行/設定することはできますか?例えば
Reading symbols from prog...(no debugging symbols found)...done.
(gdb) disas main
Dump of assembler code for function main:
0x00000560 : push %ebp
0x00000561 : mov %esp,%ebp
0x00000563 : sub $0x10,%esp
0x00000566 : call 0x580
0x0000056b : add $0x1a95,%eax
0x00000570 : movl $0x0,-0x4(%ebp)
0x00000577 : addl $0x1,-0x4(%ebp)
0x0000057b : mov -0x4(%ebp),%eax
0x0000057e : leave
0x0000057f : ret
End of assembler dump.
(gdb) run
Starting program: /home/mike/gdb/prog
[Inferior 1 (process 9607) exited with code 01]
(gdb) disas main
Dump of assembler code for function main:
0x80000560 : push %ebp
0x80000561 : mov %esp,%ebp
0x80000563 : sub $0x10,%esp
0x80000566 : call 0x80000580
0x8000056b : add $0x1a95,%eax
0x80000570 : movl $0x0,-0x4(%ebp)
0x80000577 : addl $0x1,-0x4(%ebp)
0x8000057b : mov -0x4(%ebp),%eax
0x8000057e : leave
0x8000057f : ret
End of assembler dump.