如果我有一个地址0x7ffffffff000,它是堆栈的顶部。我想检查我的堆栈的整个内容,所以我需要将它显示在较低的地址。
目前,我做
x/16x 0x7ffffffff000-64
但这仍然从低到高显示。
0x7fffffffefc0: 0x782f756c 0x68747561 0x7469726f 0x43430079
0x7fffffffefd0: 0x45484341 0x5341485f 0x52494448 0x682f003d
0x7fffffffefe0: 0x2f656d6f 0x756c7079 0x7065722f 0x652f736f
0x7fffffffeff0: 0x742f7078 0x00747365 0x00000000 0x00000000
我想要的是这样的东西
x/-16x 0x7ffffffff000
0x7fffffffeff0: 0x742f7078 0x00747365 0x00000000 0x00000000
0x7fffffffefe0: 0x2f656d6f 0x756c7079 0x7065722f 0x652f736f
0x7fffffffefd0: 0x45484341 0x5341485f 0x52494448 0x682f003d
0x7fffffffefc0: 0x782f756c 0x68747561 0x7469726f 0x43430079
是否有一些神奇的gdb命令会做我想做的事情?
答案 0 :(得分:4)
根据this message,此功能最近已添加到gdb 7.12:
GDB现在支持' x'中的负重复计数。命令 从给定地址检查内存向后。
您只需输入:
(gdb) x/-16x $rsp