第一部分:GDB调试工具安装

一.预处理(否则MAKE时候有错误)

sudo apt-getinstall texinfo

sudo apt-getinstall libncurses5-dev

sudo apt-getinstall m4

sudo apt-getinstall flex

sudo apt-getinstall bison

如果不做预处理,MAKE可能会出现下述错误

1、error: no termcap library found

2、error: makeinfo is required for compilation

二.搭建过程

在虚拟机Linux下ubuntu11.10,arm为华天正Real6410

0.下载gdb-7.4.tar.gz(http://www.gnu.org/software/gdb/download/)

手动到网页下载

1、将gdb-7.4.tar.gz拷贝到任意的位置

2、解压gdb-7.4.tar.gz

tar -zxvf gdb-7.4.tar.gz

3、编译arm-linux-gdb(下面/usr/local是安装目录,可自行更改)

到目录gdb-7.4下

cd gdb-7.4

$./configure --target=arm-linux--prefix=/usr/local/arm-gdb -v

target指明编译生成的GDB用于调试ARM-LINUX程序,prefix指明安装目录

$make

#make install

#sudo gedit /etc/profile

export PATH=$PATH:/usr/local/arm-gdb/bin --把arm-linux-gdb加入环境变量

这样就可以在/usr/local/arm-gdb/bin目录下看到如下三个可执行文件

arm-linux-gdb arm-linux-gdbtui arm-linux-run

4、编译GDB Client

#cd ./gdb/gdbserver   (进入gdb-7.4目录里执行该句)

#export PATH=$PATH:/usr/local/arm-gdb/bin

#./configure --target=arm-linux--host=arm-linux

#sudo gedit config.h

//#define HAVA_SYS_REG_H //注释此句

#make CC=arm-linux-gcc //编译用于目标机的stub程序生成gdbserver是GDB客户端程序,在板子上运行。

5、将gdbserver通过你搭建的环境下载到开发板(我的环境是nfs)

三,使用例程

1.编辑文件

# geditgdbtest.c

#include <stdio.h>

int func(int n)

{

int sum=0, i;

for (i=0; i<n; i++)

{

sum += i;

}

return sum;

}

int

main(void)

{

int i;

long result = 0;

for (i=0; i<=100; i++)

{

result += i;

}

printf("result[1-100] = %d \n",result);

printf("resutl[1-225] = %d \n",func(255));

return 0;

}

# arm-linux-gcc-g gdbtest.c -o gdbtest // 交叉编译

2.下载文件到目标板: gdbtest和gdbserver

假设 host pc ip:192.168.1.178

board ip:192.168.1.20

将文件拷贝到目标板上(通过NFS或其他工具)

检查目标板上是否有gdbtest和gdbserver两个文件。(最好从共享文件夹把这两个文件移到目标板的其他一个目录下面)

3.运行调试

client board:

#./gdbserver 192.168.1.178:1234 gdbtest //目标板上运行gdbtest 监听端口1234

host pc:

#cd/usr/local/arm-gdb/bin/ (就是arm-gdb的目录)

#copy gdbtest/usr/local/arm-gdb/bin/ //将前面编译的文件gdbtest拷贝到此目录

测试

#./arm-linux-gdbgdbtest

(gdb)target remote 192.168.0.232:1234 // 连接到开发板 成功后就可以进行调试

(gdb)list or l

(gdb)break func

(gdb)break 22

(gdb)info br

(gdb)continue orc // 这里不能用 run

(gdb)next or n

(gdb)print or presult

(gdb) finish // 跳出func函数

(gdb) next

(gdb) quit

第二部分:Qt下使用GDB远程调试ARM板

需要工具:ARM开发板(real6410),GDB调试工具,Qt,nfs服务器

1.   GDB的安装,参照上文

2.   启动nfs服务器(一般都默认启动),目标板挂载nfs共享文件夹,这里目标板的目录是

/work/zsaj/

3.   使用Qt创建一个工程,并把整个工程目录(如qt4_test和qt4_test-build-arm)创建到nfs服务器的共享根目录下面。这里我们用的是

/home/alexon/Mpiwork/

4.   编译工程,此时会同步在目标板上生成可执行文件

5.   目标板上启动目标程序的GDB调试模式

# ./gdbserver  192.168.1.22:1234  ./zsaj/1234-build-arm/1234  -qws

第一个是gdb服务器,第二个参数是主机ID和自定义的监视口,第三个参数是目标板上的目标程序,最后一个是-qws参数。

6.   Qt菜单栏,选择debug->start debugging->start andattach to remote application.

Debugger选择之前安装的gdb调试工具,这里是/home/alexon/arm-gdb/bin/arm-linux-gdb

Local executable选择该工程编译生成的本机上的可执行文件,这里是/home/alexon/Mpiwork/1234-build-arm/1234

Host and port设置的是目标板的IP以及刚才目标板定义的监视口

最后Architecture选择i386,OK即可开始调试,记得设置断点。

Qt下使用GDB远程调试ARM板相关推荐

  1. linux 远程调试文件夹,GDB远程调试开发板程序

    一.概述 可能我们都熟悉直接在发行版linux系统下调试系统,只需要在安装系统的时候包含了调试工具,直接可以根据gdb进行调试.但对于很多做嵌入式的来说,可能经常需要调试运行在开发板上的应用程序,下面 ...

  2. android gdb 远程调试工具,Android下用gdb远程调试办法

    Host: ubuntu Target: Android ICS 1. 将gdbserver和gdbclient分别放入target和host.两者都可在android源代码的prebuilt目录下找 ...

  3. GDB 远程调试试验(gdbserver)【ZT】

    一.基本原理 调试器是运行在host pc机的应用程序, 被调试的程序是运行在target上. 插桩(stub):在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试. 调试器与被调程 ...

  4. IDA+GDB远程调试android平台 - Aarch64- elf64程序

    gdb配置 gdb和gdbserver gdbserver的是在 android-ndk-r10e\prebuilt\android-arm\gdbserver 这个目录下 gdb 是在 androi ...

  5. Linux下使用GDB进行调试

    Linux下使用GDB进行调试的常用命令记于此. $ sudo su # g++ -g test.cpp -o test -pthread # gdb test         <------- ...

  6. 在海思芯片上使用GDB远程调试

    0.载GDB安装包,下载地址:Index of /gnu/gdb,使用8.2版本 1.见下面链接: 在海思芯片上使用GDB远程调试_大橙子疯的博客-CSDN博客_海思gdb调试 和 arm-linux ...

  7. Qtcreator远程调试arm开发板程序指南

    环境配置 1 ,交叉编译gdb, 主要是gdbserver,把gdbserver 放在arm开发板的可执行程序目录里 2 安装gdb-multiarch, sudo apt-get install g ...

  8. 【GDB】gdbserver的使用,远程调试开发板

    0.将gdbserver拷贝到目标板子上 注:gdbserver在交叉编译工具目录/debug-root/usr/bin下 可用file命令查看 --------------------------- ...

  9. linux gdb模式下无反应,Linux,GDB 嵌入式Linux的GDB远程调试的问题--断点没反应

    院士 2006-12-22 22:43:00    评分 2楼 问 我用的是BF531 uClinux Linux version 2.6.16.11-ADI-2006R1-hhbf (root@se ...

  10. VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序

    基本流程跟我的另一篇文章<VsCode + gdb + gdbserver远程调试C++程序>一样,不一样的是需要重新编译gdb和交叉编译gdbserver. 一.准备工作 sudo ap ...

最新文章

  1. mxnet symbol图的 变量 shape
  2. Lesson 12.4 逻辑回归建模实验
  3. 使用docker-compose部署sentinel
  4. Kosaraju算法(发现强连通分图算法)
  5. Optical_Flow(3)
  6. PAT乙:1009 说反话
  7. sql string转number_少用 string.Format
  8. Wordpress 自定义文章类型添加 Categoried、Tags
  9. 主席树 || 可持久化线段树 || BZOJ 3653: 谈笑风生 || Luogu P3899 [湖南集训]谈笑风生...
  10. 【图像分割】基于matlab GUI类间方差阈值图像分割【含Matlab源码 583期】
  11. 前端工程师的基本工作流程
  12. 护眼html颜色,在电脑中设置护眼颜色、更换网页背景色、一键护眼
  13. 乐2 乐视X621_官方线刷包_救砖包_解账户锁
  14. 手机创新何时不再“纸上谈兵”?
  15. 刘同——谁的青春不迷茫,给你冬日满满正能量
  16. 基于51单片机实现计算器功能
  17. 解析DELLR710服务器迁移操作内容
  18. 哪些关于硬件的事之串行与并行到底是hang还是xing
  19. Vue小项目Mock.js的学习
  20. 数学建模笔记CH2:微积分方法建模

热门文章

  1. 内置单片机的433无线模块高速连传典型运用
  2. FPGA的学习:TFT_LCD液晶屏字符显示
  3. 在静止状态下根据IMU(加速度计)计算姿态角
  4. Qt中qmake的INSTALLS变量将编译文件拷到运行目录
  5. html背景渐变蓝色,CSS3网页渐变色背景,适用于IE
  6. Premiere导入视频之后音频轨没有内容
  7. 思考怎么成为一名合格的技术总监?
  8. 顽皮的雪狐七七:CSS——清除浮动所有方法总结
  9. ARM开发初级-Windows环境下的STM32开发环境搭建(包含missing compiler version 5的解决方法)-学习笔记02
  10. 如何系统学习知识图谱-胖子哥的实践经验分享