Windows下用Eclipse和CodeSourcery工具链进行远程交叉调试
来源:互联网 发布:汽车金融数据 编辑:程序博客网 时间:2024/05/22 06:32
上篇讲了搭建开发环境,开始编译程序,这篇讲一下怎么调试程序,加断点,attach到线程。
“在控制器中运行”的意思是用putty等telnet或ssh工具连接到控制器,在其中输入命令。
4、使用Eclipse:调用gdb和gdbserver调试程序
设置远程启动方式为手动
在Eclipse中,点击window->Preferences->Run/Debug->Launching->DefaultLaunchers,选中中间C/C++ Remote Application下面的[Debug],然后在右侧选择GDB (DSF) Manual Remote DebuggingLauncher。这样的设置下,我们需要首先在目标板上手动用gdbserver启动程序,再在Eclipse中启动调试。自动上传并启动的方法我正在探索。
设置调试器
在小甲虫(Debug)按钮右边的下拉箭头上点击,选择Debug Configuration,双击C/C++ Remote Application,就可以新建一个调试设置。
在最上方可以修改调试设置的名字,比如IPC-GS Remote。
在main选项卡上的C/C++ Application输入框选择要调试的可执行文件名(IPC-GS-DBG)
在Debugger选项卡下的main选项卡中的debugger输入框输入arm-none-linux-gnueabi-gdb,其它的复选框都不用选中。
在Debugger选项卡下的Connection选项卡中,连接类型选择TCP, IP填192.168.0.200,端口号填2345。
上传文件
将IPC_GS_DBG上传到控制器中;
将CodeSourcery安装目录中\arm-none-linux-gnueabi\libc\usr\bin中的gdbserver也上传到控制器中;
启动gdbserver
在控制器上执行:
./gdbserver 192.168.0.1:2345 ./IPC_GS_DBG
其中192.168.0.1是你计算机的ip地址,端口号可以随便设置,要跟设置调试器那个步骤中的一样。
这时程序开始监听GDB连接。
启动调试器
在小甲虫(Debug)按钮右边的下拉箭头上点击,下面这时候应该有一项是IPC-GS Remote,点它就可以了。记得设置断点。
5、附加到线程
最烦的是,程序启动了,出问题了,但你不知道哪里出了问题,重新用debug方式启动又有可能不能复现错误。此时可以让gdbserver帮忙连到出问题的线程上,查找问题所在。
查看线程编号
使用top命令可以查看CPU占用率,此时按H键,可以把每个进程展开,从而查看到每个线程的线程号。注意通过代码或者日志判断一下你要调试的线程是第几个启动的,从而推断线程号;或者直接打印一下线程号。
attach到线程
在控制器中执行:
./gdbserver --remote-debug 192.168.0.4:2345--attach 471
其中ip和端口号意义与之前一样,最后一个是线程号。
用Eclipse调用GDB连接到控制器
此处不再赘述,同前
添加断点
注意,此处添加的断点只能在你附加到的线程代码中,如果别的线程也会跑到你的断点,将会导致程序退出。所以一定看好线程号。
至此,程序应该能正常中断,停在你想要的位置了。
- Windows下用Eclipse和CodeSourcery工具链进行远程交叉调试
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- Eclipse 进行远程调试Windows Tomcat配置
- ARM在codesourcery下的交叉编译链
- 嵌入式 用GDB Server进行远程调试交叉编译工具以及运用小结
- 利用Eclipse和Tomcat进行远程调试
- eclipse进行远程调试
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Windows CE 模拟器和远程调试工具
- Eclipse远程调试Tomcat(linux和windows)
- 用Eclipse进行远程调试方法
- 在Windows下进行Linux/FreeBSD/Unix的GCC远程开发和调试
- springMVC 使用注解注入接口实现类
- H-2016-数据的交换输出
- 259 茵茵的第一课
- java 对象类型与基本数据类型传参的比较
- HDU 2045 不容易系列之(3)—— LELE的RPG难题
- Windows下用Eclipse和CodeSourcery工具链进行远程交叉调试
- 源代码---java连接MySql数据库
- 260 数数小木块
- POJ 1664 放苹果
- 关于如何学习
- hdu 4873 ZCC Loves Intersection 概率推导 java大整数
- 中缀转后缀,后缀求值,后缀构造表达式树
- mysql常见的几个误区
- winXP搜索功能 "包含文字" 搜索不到内容的解决办法