使用gdbserver可以对目标设备上的程序进行远程调试。
gdbserver基本用法如下:
此时gdbserver监听端口号1234,并等待客户端连接。
然后就可以对目标设备的程序进行debug了。
最初在使用gdbserver的时候,我遇到了如下问题:
这个问题的核心是:在手机上运行的gdbserver是配置为面向arm架构的(arm-eabi-linux),而在PC端运行的gdb是配置为面向X86_64架构的。
查看gdbserver的版本信息:
可以看到目标设备的gdbserver面向的架构是 arm-eabi-linux ;
而我的PC上的gdb的架构是 "x86_64-unknown-linux-gnu" 。
所以,出现了上述问题。
解决方法
保证gdbserver和gdb配置的架构是一致。在PC端安装针对arm架构配置的gdb工具。
gdb:The GNU Debugger for the ARM EABI (bare-metal) target
在archlinux上解决方式是安装 arm-none-eabi-gdb
然后使用arm-none-eabi-gdb连接gdbserver就OK了。
像这样的问题,建议你还是找厂家来吧,因为可能人家说远程调试一下,你都不太明白什么意思,那么就算提供给你方法你也未必能明白,实质服务器一般都是远程调试的,也有一些是,你带着显示器去服务器旁边,连到服务器上,一般服务器的系统都是LIMUX的,远程的道理就是通过IP网络,通过别的电脑,用IP地址切入服务器的 *** 作界面,这是简单的解释。在本机进行开发用tomcat部署时我们可能会在tomcat/bin/catalinash配置如下debug参数进行调试:但是在远程服务器上同样的配置却在启动调试时报错:
检查Remote配置:
IP和端口号都没问题但是"Connection refused",于是我们检查服务器16808端口情况:
可见当前16808端口服务被绑定了回环地址,外部无法访问,说明JAVA_OPT里address如果不指定ip会默认绑定到本机,如果是要提供远程调试的服务器上的工程,就需要指定当前服务器地址才行,问题于是解决。一 调试准备
将vs2010远程调试监视器Remote Debugger拷贝到被调试机器中。
(Remote Debugger默认路径: C:\Program Files (x86)\Microsoft Visual Studio 100\Common7\IDE\Remote Debugger)
1 被调试机设置
根据 *** 作系统的位数打开相应文件夹下的msvsmonexe。
点击工具/选项
选择无身份验证(仅限本机),勾选允许任何用户进行调试,点击确定
2 调试机设置
1 直接调试
打开工程的属性页,点击配置属性/调试
作如下配置:
要启动的调试器:选择远程windows调试器
远程命令:填写被调试机上的程序名称,包含路径
工作目录:填写被调试机上的程序的路径
远程服务器名称:填写被调试机IP
连接:选择不带身份验证的远程访问(仅限本机)
点击启动调试
2 附加进程
被调试机启动程序
调试机点击调试/附加到进程,打开附加到进程界面
传输:选择远程(无身份验证仅限本机),限定符填写被调试机IP,点击刷新。
找到对应exe,附加。
若调试时出现断点无法选中的情况:
1保证在调试机和被调试机上的exe版本一致,且均为debug版本。
2保证在调试机和被调试机上的pdb文件版本一致。第一步:
设置断点:在该行最前面边框双击 或快捷键:Ctrl+Shift+B
第二步:
Debug 运行启动
第三部:
运行到断点后:
使用快捷键F5,F6,F7单步执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)