用info proc mappings可以看栈的起始、终止位置。
例子:
(gdb) info proc mappings
process 2578
cmdline = '/root/test/hw'
cwd = '/root/test'
exe = '/root/test/hw'
Mapped address spaces:
Start Addr End Addr Size Offset objfile
0x400000 0x401000 0x1000 0 /root/test/hw
0x600000 0x601000 0x1000 0 /root/test/hw
0x34f3c00000 0x34f3c1c000 0x1c000 0 /lib64/ld-2.5.so
0x34f3e1b000 0x34f3e1c000 0x1000 0x1b000 /lib64/ld-2.5.so
0x34f3e1c000 0x34f3e1d000 0x1000 0x1c000 /lib64/ld-2.5.so
0x34f4000000 0x34f414e000 0x14e000 0 /lib64/libc-2.5.so
0x34f414e000 0x34f434d000 0x1ff000 0x14e000 /lib64/libc-2.5.so
0x34f434d000 0x34f4351000 0x4000 0x14d000 /lib64/libc-2.5.so
---Type <return> to continue, or q <return> to quit---
0x34f4351000 0x34f4352000 0x1000 0x151000 /lib64/libc-2.5.so
0x34f4352000 0x34f4357000 0x5000 0xf4352000
0x2aaaaaaab000 0x2aaaaaaac000 0x1000 0xaaaab000
0x2aaaaaabe000 0x2aaaaaac0000 0x2000 0xaaabe000
0x7ffffffea000 0x7ffffffff000 0x15000 0xfffea000 [stack]
0xffffffffff600000 0xffffffffffe00000 0x800000 0 [vdso]
或者不通过gdb的话:
cat /proc/24020/maps
24020换成相应的PID就行