查看内存程序问题
是用 gdb 还是 objdump 工具能看程序的内存布局呢 如我的程序是这样的
- C/C++ code
.globl _start_start: lidt idt_48 ! load idt with 0,0 lgdt gdt_48 ! load gdt with whatever appropriate gdt: .word 0,0,0,0 ! dummy .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) .word 0x0000 ! base address=0 .word 0x9A00 ! code read/exec .word 0x00C0 ! granularity=4096, 386 .word 0x07FF ! 8Mb - limit=2047 (2048*4096=8Mb) .word 0x0000 ! base address=0 .word 0x9200 ! data read/write .word 0x00C0 ! granularity=4096, 386idt_48: .word 0 ! idt limit=0 .word 0,0 ! idt base=0Lgdt_48: .word 0x800 ! gdt limit=2048, 256 GDT entries .word 512+gdt,0x9 ! gdt base = 0X9xxx
我用 as 和 ld 生成了一个 test.o test文件
我想看看 代码段 和数据段在内存中的布局 这两个工具怎么用呢 谢谢
比如:
内存地址 16进制 汇编
0x0000000 0x00000 gdt:
..................................
..................................
0x1000000 0x00000 lidtidt_48
把整个程序显示出来
其实就想看看 代码段 和数据段在内存中的布局 谢谢了
[解决办法]
cat /proc/<pid of program>/maps
[解决办法]
size -A -x
objdump -x
readelf -e
看看哪个符合你要求