当前位置: 技术问答>linux和unix
关于gdbserver调试的问题
来源: 互联网 发布时间:2016-11-04
本文导语: 主机与arm开发板通过串口,还有交叉网线相连 主机系统为windows xp,用虚拟机安装了红帽linux9.0,开发板为优龙公司出的YL9200V2.0 用linux下的minicom实现主机与开发板的通讯 现在实现了通过nfs方式将主机上的/home挂...
主机与arm开发板通过串口,还有交叉网线相连
主机系统为windows xp,用虚拟机安装了红帽linux9.0,开发板为优龙公司出的YL9200V2.0
用linux下的minicom实现主机与开发板的通讯
现在实现了通过nfs方式将主机上的/home挂载到开发板上的/tmp目录下
/home中有gdbserver,hello,hello.c三个文件,hello为主机中用命令:arm-linux-gcc -o hello hello.c生成的
在开发板上输入命令:./gdbserver 192.168.0.7:2345 hello
出现以下信息:
Process hello created: pid = 825
Cannot exec hello: Permission denied.
Child exited with retcode = 7f
Lisitening on port 2345
然后在主机上输入命令:arm-linux-gdb hello
出现信息如下:
GNU gdb 6.5
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 "--host=i686-pc-linux-gnu --target=arm-linux"...hello: 没有那个文件或目录.
(gdb)
然后输入:target remote 192.168.0.100:2345
出现提示如下:
Remote debugging using 192.168.0.100:2345
Remote communication error: Connection reset by peer.
在开发板上出现信息提示如下:
Remote debugging from host 192.168.0.7
Child exited with status 127
GDBserver exiting
这应该是没有成功吧?怎么回事呢?
注:192.168.0.7是主机IP,192.168.0.100是开发板IP
主机系统为windows xp,用虚拟机安装了红帽linux9.0,开发板为优龙公司出的YL9200V2.0
用linux下的minicom实现主机与开发板的通讯
现在实现了通过nfs方式将主机上的/home挂载到开发板上的/tmp目录下
/home中有gdbserver,hello,hello.c三个文件,hello为主机中用命令:arm-linux-gcc -o hello hello.c生成的
在开发板上输入命令:./gdbserver 192.168.0.7:2345 hello
出现以下信息:
Process hello created: pid = 825
Cannot exec hello: Permission denied.
Child exited with retcode = 7f
Lisitening on port 2345
然后在主机上输入命令:arm-linux-gdb hello
出现信息如下:
GNU gdb 6.5
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 "--host=i686-pc-linux-gnu --target=arm-linux"...hello: 没有那个文件或目录.
(gdb)
然后输入:target remote 192.168.0.100:2345
出现提示如下:
Remote debugging using 192.168.0.100:2345
Remote communication error: Connection reset by peer.
在开发板上出现信息提示如下:
Remote debugging from host 192.168.0.7
Child exited with status 127
GDBserver exiting
这应该是没有成功吧?怎么回事呢?
注:192.168.0.7是主机IP,192.168.0.100是开发板IP
|
http://blog.csdn.net/feiyinziiuxx/archive/2009/08/25/4483684.aspx
请参考
请参考
|
难道开发板上也有权限限制吗?
|
对程序的调试是在主机的命令终端,你list的时候没有代码显示应该是因为你没有指定代码所在的目录
比如你代码在当前目录就
dir ./
这样就可以指定了,不过你在编译的时候没有指定-g选项,是没有调试信息的。
arm-linux-gcc -o hello hello.c
arm-linux-gcc -g -o hello hello.c
比如你代码在当前目录就
dir ./
这样就可以指定了,不过你在编译的时候没有指定-g选项,是没有调试信息的。
arm-linux-gcc -o hello hello.c
arm-linux-gcc -g -o hello hello.c
|
Permission denied.
权限问题,要么没用root login, 要么没有 chmod 777 your_file.
权限问题,要么没用root login, 要么没有 chmod 777 your_file.
|
你的执行流程除了最后一步外,其他的都没有错。
最后一步应该在主机上输入:
(gdb)c
最后一步应该在主机上输入:
(gdb)c
|
LZ你需要看看远程gdb的命令。它更通常gdb调试差别很大。