gdb调试嵌入式环境搭建
1.下载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调试嵌入式环境搭建的更多相关文章
- 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建、调试输出和建立时间系统
我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...
- 嵌入式环境搭建之NFS
嵌入式环境搭建之NFS Author:tiger-johnTime:2013-08-04mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tiger ...
- vscode调试golang环境搭建及配置
准备VSCode 在官网下载最新版的VSCode: 安装Golang插件 打开扩展面板 VSCode->查看->扩展 找到Go插件 在搜索框里输入Go, 找到第二行写有 Rich Go l ...
- Tomcat7调试运行环境搭建与源代码分析入门
1. 需要准备好下面这些工具 JDK 1.6+ Maven 2或3 TortoiseSVN 1.7+ (从1.7开始”.svn”目录集中放在一处了,不再每个目录下都放一份) Eclipse 3.5+ ...
- centos7嵌入式环境搭建
1. 在网上搜索下载交叉编译器arm-linux-gcc文件,我下载的是:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ...
- 逻辑性最强的React Native环境搭建与调试
React Native(以下简称RN),已经“火”了好一段时间了,网上的资料相对也很丰富,只是一直迟迟没有发布1.0,不过出身豪门(Facebook)的RN和国内顶级互联网公司对于RN的实践与应用, ...
- Linux嵌入式GDB调试环境搭建
======================= 我的环境 ==========================PC 端: CPU:x86_64, 系统:Ubuntu,IP:172.16.2.212开发 ...
- win10下搭建jz2440v3(arm s3c2440)开发及gdb调试环境【转】
本文转载自:https://blog.csdn.net/newjay03/article/details/72835758 本来打算完全在Ubuntu下开发的,但是水平有限,没有在Ubuntu下找到合 ...
- Eclipse + CDT + YAGARTO + J-Link,STM32开源开发环境搭建与调试
Eclipse+CDT+YAGARTO+J-Li:开源开发环境搭建与调试:作者:Chongqing:邮箱:ycq.no1@163.com:文档版本:V1.0:发布日期:2014-08-04:前言:此文 ...
随机推荐
- ClassNotFoundException和NoClassDefFoundError的区别
ClassNotFoundException ClassNotFoundException的产生原因:就是找不到指定的class. ClassNotFoundException发生在加载阶段. 常见的 ...
- android:Internet(volley)
public void getStringFromCloud(View view) { /*创建请求队列*/ RequestQueue queue = Volley.newRequestQueue(t ...
- css3实现自适应的3行,左右行固定宽度,中间自适应,要求先渲染中间部分
https://blog.csdn.net/thqy39/article/details/73512478 https://www.cnblogs.com/ranzige/p/4097453.html ...
- 32 C++常见错误集锦
1 下列程序中,K的值为:6 enum { a,b=5,c,d=4,e }k; K=c; 分析:enum中,首元素不赋值的话,默认为0:后一个元素不赋值的话比前一个元素大1. 2 程序运行正常. # ...
- 对聊天室项目的NABCD的分析
NABCD需求分析: 需求(N):我们的项目是制作一个局域网内的聊天室软件,为了解决一个公司或者小团体内小范围的局域的简单通讯问题,我们针对的需求是简单与安全. 做法(A):用Java来实现一个C/S ...
- Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制
Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...
- document.write与document.getElementById的区别
document.write改变的是整个HTML页面(文档),document.getElementById("demo").innerHTML= 改变的是局部属性
- react 调用webIm
记录下遇到的问题,之前引用腾讯云的webim,一直出错,现在改好了, 引用了, 以上是在public下的index.html引用, 但是在子模块console.log(webim);会报这个错 解决也 ...
- winfrom 关闭别的应用程序的窗体或者弹出框(winform 关闭句柄)
在word转换成html的时候,由于系统版本不一样,office总是抛出异常,Microsoft Word停止工作,下面有三个按钮,关闭程序等等,但是我的转换工作需要自动的,每当抛出异常的时候我的程序 ...
- python基础--字符串
字符串 1.形式 单引号括起来的字符串:'hello' 双引号括起来的字符串:"Hello" 三引号括起来的字符串:'''hello'''(三单引号),""&q ...