当前位置: 技术问答>linux和unix
查看内存程序问题
来源: 互联网 发布时间:2017-03-01
本文导语: 是用 gdb 还是 objdump 工具能看程序的内存布局呢 如我的程序是这样的 .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...
是用 gdb 还是 objdump 工具能看程序的内存布局呢 如我的程序是这样的
我用 as 和 ld 生成了一个 test.o test文件
我想看看 代码段 和数据段在内存中的布局 这两个工具怎么用呢 谢谢
比如:
内存地址 16进制 汇编
0x0000000 0x00000 gdt:
..................................
..................................
0x1000000 0x00000 lidt idt_48
把整个程序显示出来
其实就想看看 代码段 和数据段在内存中的布局 谢谢了
.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, 386
idt_48:
.word 0 ! idt limit=0
.word 0,0 ! idt base=0L
gdt_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 lidt idt_48
把整个程序显示出来
其实就想看看 代码段 和数据段在内存中的布局 谢谢了
|
cat /proc//maps
|
size -A -x
objdump -x
readelf -e
看看哪个符合你要求
objdump -x
readelf -e
看看哪个符合你要求