1.下载gdb源代码

http://ftp.gnu.org/gnu/gdb/

2.编译

解压#tar zxvf gdb-7.9.1.tar.gz,cd到解压的目录中。

2.1编译arm-linux-gdb

arm-linux-gdb运行在PC(服务器)上的程序,用于调试的部分

配置参数,--target:目标平台,--prefix:gdb安装的路径;编译,安装

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

#make -j8

#make install

在指定的路径下生成bin include lib share四个目录,bin下的arm-linux-gdb就是需要的程序。

2.2编译gdbserver

#cd gdb/gdbserver

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

#make -j8 CC=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-gcc

编译会报错,主要信息如下:

linux-low.c:612:46: error: ‘ADDR_NO_RANDOMIZE’ undeclared (first use in this function)
if (errno == 0 && !(personality_orig & ADDR_NO_RANDOMIZE))
^
linux-low.c:612:46: note: each undeclared identifier is reported only once for each function it appears in
linux-arm-low.c:129:21: fatal error: sys/reg.h:没有那个文件或目录
#include <sys/reg.h>

修改一下config.h文件,注释掉如下两行

#define HAVE_PERSONALITY 1
#define HAVE_SYS_REG_H 1

然后再次编译,会在当前路径下生成gdbsever,gdbsever就是需要运行在目标机上的程序。将gdbserver拷贝到目标机上。

3.gdb调试

被调试的程序编译时需要加上-g选项,使生成的程序中带上调试信息。编译完成的程序也不能用strip剥去调试信息。

在板子端运行gdbserver

#./gdbserver 10.1.65.142:9990 main

此处ip,port是调试主机的,main是程序名,注意的是main需要在主机端有一份一样的拷贝。arm运行成功,会打印出如下信息:

Process main created; pid = 75
Listening on port 9990

在主机端运行arm-linux-gdb

#./arm-linux-gdb main

#target remote 10.7.162.197:9990\r  //远程连接arm,进行调试

使用set solib-search-path ~/data/nfs/solib/设置动态库路径

gdb调试嵌入式环境搭建的更多相关文章

  1. 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建、调试输出和建立时间系统

    我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...

  2. 嵌入式环境搭建之NFS

    嵌入式环境搭建之NFS Author:tiger-johnTime:2013-08-04mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tiger ...

  3. vscode调试golang环境搭建及配置

    准备VSCode 在官网下载最新版的VSCode: 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go l ...

  4. Tomcat7调试运行环境搭建与源代码分析入门

    1. 需要准备好下面这些工具 JDK 1.6+ Maven 2或3 TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份) Eclipse 3.5+ ...

  5. centos7嵌入式环境搭建

    1. 在网上搜索下载交叉编译器arm-linux-gcc文件,我下载的是:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ...

  6. 逻辑性最强的React Native环境搭建与调试

    React Native(以下简称RN),已经“火”了好一段时间了,网上的资料相对也很丰富,只是一直迟迟没有发布1.0,不过出身豪门(Facebook)的RN和国内顶级互联网公司对于RN的实践与应用, ...

  7. Linux嵌入式GDB调试环境搭建

    ======================= 我的环境 ==========================PC 端: CPU:x86_64, 系统:Ubuntu,IP:172.16.2.212开发 ...

  8. win10下搭建jz2440v3(arm s3c2440)开发及gdb调试环境【转】

    本文转载自:https://blog.csdn.net/newjay03/article/details/72835758 本来打算完全在Ubuntu下开发的,但是水平有限,没有在Ubuntu下找到合 ...

  9. Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试

    Eclipse+CDT+YAGARTO+J-Li:开源开发环境搭建与调试:作者:Chongqing:邮箱:ycq.no1@163.com:文档版本:V1.0:发布日期:2014-08-04:前言:此文 ...

随机推荐

  1. ClassNotFoundException和NoClassDefFoundError的区别

    ClassNotFoundException ClassNotFoundException的产生原因:就是找不到指定的class. ClassNotFoundException发生在加载阶段. 常见的 ...

  2. android:Internet(volley)

    public void getStringFromCloud(View view) { /*创建请求队列*/ RequestQueue queue = Volley.newRequestQueue(t ...

  3. css3实现自适应的3行,左右行固定宽度,中间自适应,要求先渲染中间部分

    https://blog.csdn.net/thqy39/article/details/73512478 https://www.cnblogs.com/ranzige/p/4097453.html ...

  4. 32 C++常见错误集锦

    1 下列程序中,K的值为:6 enum { a,b=5,c,d=4,e }k; K=c; 分析:enum中,首元素不赋值的话,默认为0:后一个元素不赋值的话比前一个元素大1. 2  程序运行正常. # ...

  5. 对聊天室项目的NABCD的分析

    NABCD需求分析: 需求(N):我们的项目是制作一个局域网内的聊天室软件,为了解决一个公司或者小团体内小范围的局域的简单通讯问题,我们针对的需求是简单与安全. 做法(A):用Java来实现一个C/S ...

  6. Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制

    Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...

  7. document.write与document.getElementById的区别

    document.write改变的是整个HTML页面(文档),document.getElementById("demo").innerHTML= 改变的是局部属性

  8. react 调用webIm

    记录下遇到的问题,之前引用腾讯云的webim,一直出错,现在改好了, 引用了, 以上是在public下的index.html引用, 但是在子模块console.log(webim);会报这个错 解决也 ...

  9. winfrom 关闭别的应用程序的窗体或者弹出框(winform 关闭句柄)

    在word转换成html的时候,由于系统版本不一样,office总是抛出异常,Microsoft Word停止工作,下面有三个按钮,关闭程序等等,但是我的转换工作需要自动的,每当抛出异常的时候我的程序 ...

  10. python基础--字符串

    字符串 1.形式 单引号括起来的字符串:'hello' 双引号括起来的字符串:"Hello" 三引号括起来的字符串:'''hello'''(三单引号),""&q ...