我试图在x86_64 suse linux上远程调试32位应用程序,但得到这个“远程寄存器格式错误”错误.
我启动gdbserver作为侦听端口12345(gdbserver localhost:12345 my_prog)
这是错误:
$gdb
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation,Inc.
GDB is free software,covered by the GNU General Public License,and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
(gdb) target remote
这是调试服务器机器(uname -a):
Linux服务器2.6.16.60-0.31-smp#1 SMP Tue 10月7日16:16:29 UTC 2008 x86_64 x86_64 x86_64 GNU / Linux
这是调试客户机(uname -a):
Linux客户端2.6.16.54-0.2.5-default#1 Mon 1月21日13:29:51 UTC 2008 x86_64 x86_64 x86_64 GNU / Linux
两台机器都在虚拟机中运行(VMWare). gdbserver二进制文件从客户端计算机复制到服务器计算机.
(我进行远程调试,因为调试服务器上的运行时环境类似于生产环境,并且不包含任何开发工具,访问源代码等)
欢迎任何建议.
更新:通过在gdb中发出以下命令,这对我有用:
设置架构i386:x86-64
最佳答案
也许您需要在(gdb)提示符下执行类似set architecture i386的操作?连接到远程目标后,show architecture说了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。