Linux GDB错误值可以';不能转换为整数

Linux GDB错误值可以';不能转换为整数,linux,debugging,gdb,Linux,Debugging,Gdb,我试图调试一些应用程序,我想用下面的命令传递一些数据,但我得到了错误 .... .... (gdb) x/20x $esp Value can't be converted to integer. (gdb) 我的GDB版本如下: #gdb -v GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5) Copyright (C) 2009 Free Software Foundation, Inc. L

我试图调试一些应用程序,我想用下面的命令传递一些数据,但我得到了错误

    ....
    ....
    (gdb) x/20x $esp
    Value can't be converted to integer.
    (gdb)
我的GDB版本如下:

#gdb -v
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
#gdb-v
GNU gdb(gdb)Red Hat Enterprise Linux(7.0.1-23.el5)
版权所有(C)2009免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。键入“显示复制”
和“显示保修”了解详细信息。
此GDB配置为“x86_64-redhat-linux-gnu”。
有关错误报告说明,请参阅:
.
(gdb)x/20x$esp

值无法转换为整数。


尝试
x/20x$rsp
x/20x$sp

从64位系统运行它,因此所有寄存器都应该使用寄存器名作为rip,而不是eip,依此类推

例如:

(gdb) x/x $rip 0x4004c8 : 0x4005d8b8 (gdb)x/x$rip 0x4004c8:0x4005d8b8 获取信息寄存器以查看所有 (gdb)信息寄存器

rax 0x7ffff7dd9f60 140737351884640 rbx 0x0 0 rcx 0x0 0 rdx 0x7fffffffe188 140737488347528 rsi 0x7fffffffe178 140737488347512 rdi 0x1 1 rbp 0x7fffffffe090 0x7fffffffe090 rsp 0x7fffffffe090 0x7fffffffe090 r8 0x7ffff7dd8300 140737351877376 r9 0x7ffff7deb9e0 140737351956960 r10 0x7fffffffdee0 140737488346848 r11 0x7ffff7a68be0 140737348275168 r12 0x4003e0 4195296 r13 0x7fffffffe170 140737488347504 r14 0x0 0 r15 0x0 0 rip 0x4004c8 0x4004c8 eflags 0x246 [ PF ZF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 rax 0x7ffff7dd9f60 140737351884640 rbx 0x0 0 rcx 0x0 0 rdx 0x7FFFFFE188 140737488347528 rsi 0x7FFFFFE178 140737488347512 rdi 0x1 rbp 0x7FFFFFE090 0x7FFFFFE090 rsp 0x7FFFFFE090 0x7FFFFFE090 r8 0x7ffff7dd8300 1407351877376 r9 0x7ffff7deb9e0 140737351956960 r10 0x7FFFFFDEE0 140737488346848 r11 0x7ffff7a68be0 140737348275168 r12 0x4003e0 4195296 r13 0x7FFFFFE170 140737488347504 r14 0x0 0 r15 0x0 0 rip 0x4004c8 0x4004c8 eflags 0x246[PF ZF IF] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0
可能您的CPU没有ESP寄存器($ESP)?试试
info registers
,你看到了什么?我刚刚发现。。你太棒了!!