读书人

查看内存程序有关问题

发布时间: 2012-06-23 14:52:43 作者: rapoo

查看内存程序问题
是用 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

看看哪个符合你要求

读书人网 >UNIXLINUX

热点推荐