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:前言:此文 ...
随机推荐
- 数据分析库之matplotlib
一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 轴标签 axisLabel 水平和垂直的轴标签 x轴和y轴刻度 tick 刻度标示 ...
- ThinkPHP5.0源码学习之注册错误和异常处理机制
在base.php文件中,用一句代码\think\Error::register();实现错误和异常处理机制的注册. // 注册错误和异常处理机制 \think\Error::register(); ...
- DNS及DNS有什么作用
什么是DNS,DNS有什么作用: DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直 ...
- mysql 5.7版本的安装(非解压版)
这次的开发项目数据库方面要用到mysql,为了更好的学习,就在本地安装了一个mysql 一:下载安装步骤: https://blog.csdn.net/qq_34952973/article/deta ...
- Sql server数据库连接Oracle库的步骤
本地使用环境 操作系统: win10 64 ,SQL Server 2012 ,Oracle Server 11g 第一步:安装好oracle客户端,并配置好TNS信息 ORCL = (DESCR ...
- Eclipse 手动增加linker library
多个cu文件nvcc -cubin -m64 -lcudadevrt -lcublas_device -gencode arch=compute_35,code=sm_35 -o test.cubin ...
- js中通过Object.prototype.toString方法----精确判断对象的类型
判断是否为函数 function isFunction(it) { return Object.prototype.toString.call(it) === '[object Func ...
- keras 实现人工神经网络
#encoding=utf-8 import numpy as np from keras.models import Sequential from keras.layers import Dens ...
- springcloud Ribbon学习笔记二
之前介绍了如何搭建eureka服务并开发了一个用户服务成功注册到了eureka中,接下来介绍如何通过ribbon来从eureka中获取用户服务: springcloud ribbon提供客户端的负载均 ...
- FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)
题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉 ...