避开SS524V100 GDB的坑
目录
前言
一、GDB失败经历总结
二、GDB成功经验分享
2.1 gdb下载官网:
2.2 选择gdb版本:
2.3 编译生成gdb:
2.4 运行测试gdb:
三、GDB编译Makefile
总结:
1. GDB 编译最重要的是:要选择到 SDK 能兼容的 GDB 版本;
2. 在编译过程中你可能会有遇到一些麻烦,解决方法如下:
前言
1、SDK版本:SS524V100_SDK_V2.0.1.0
2、服务器版本:ubuntu-18.04
在 Linux 开发中经常需要使用到 GDB 工具来调试程序。做芯片开发的,都知道当你的 SDK 工具链版本与 GDB 版本不兼容时,就会出现不可用的情况。接下来就由我带大家避开 SS524V100 GDB 不可用的坑吧。
一、GDB失败经历总结
根据官方文档推荐下载的 gdb-10.2 版本使用,可是当你编译、移植,一整套流程下来,最后运行时发现,报错如下:
$ ./gdb -v
relocation error: symbol _ZTINSt13__future_base12_Result_baseE, version GLIBCXX_3.4.23 not defined in file libstdc++.so.6 with link time reference
看到这种情况当然很纳闷啦,然后就是各种库的安装和各种手段的尝试过程 。。。。。
最终发现出现这种问题,一般都是工具链与 GDB 版本不兼容导致的。嘻嘻,最终能找到问题也不错呀,那就让我们避开一些坑坑洼洼,继续往下看吧!
二、GDB成功经验分享
2.1 gdb下载官网:
https://ftp.gnu.org/gnu/gdb/
2.2 选择gdb版本:
gdb-8.2.tar.gz
2.3 编译生成gdb:
- 下载好了 gdb-8.2 版本的源码后,拷贝到我们的 Linux 服务器里编译:
$ mkdir -p /home/SS524V100_SDK_V2.0.1.0/osdrv/tools/board/gdb/
$ cd /home/SS524V100_SDK_V2.0.1.0/osdrv/tools/board/gdb/
$ cp /share/gdb-8.2.tar.gz ./
$ cp /share/Makefile ./
$ make
- 这个编译过程大概需要15分钟左右,编译完成后生成的gdb程序是在编译目录下的 install/bin/
$ ls install/bin/
gcore gdb gdb-add-index gdbserver run
2.4 运行测试gdb:
- 运行 gdb 有两种方式,一种是拷贝到板端运行,另外一种是直接挂载到服务器上运行(以挂载运行为例):
$ mount -t nfs -o nolock -o tcp 192.168.1.107:/home/nfs /home/
$ cd /home
$ ./gdb -vGNU gdb (GDB) 8.2Copyright (C) 2018 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.
- 好了,如果执行到这一步就证明你的 GDB 已经完全可以正常使用了。
三、GDB编译Makefile
- 在 “2.3编译生成gdb” 的Makefile,我放在这里给大家了(直接复制使用即可):
TOOLS_TOP_DIR := $(shell pwd)
TOOL_TAR_BALL := gdb-8.2.tar.gz
TOOL_NAME := gdb-8.2
TOOL_BUILD := build
TOOL_INSTALL := install
OSDRV_CROSS ?= arm-mix410-linuxall:tar -xf $(TOOL_TAR_BALL);mkdir -p $(TOOLS_TOP_DIR)/$(TOOL_BUILD)/;pushd $(TOOLS_TOP_DIR)/$(TOOL_BUILD)/; \$(TOOLS_TOP_DIR)/$(TOOL_NAME)/configure --host=$(OSDRV_CROSS) --prefix=$(TOOLS_TOP_DIR)/$(TOOL_INSTALL); \make -j16; \make install;\popd;.PHONY: clean
clean:make -C $(TOOLS_TOP_DIR)/$(TOOL_BUILD)/ clean;.PHONY: distclean
distclean:rm $(TOOLS_TOP_DIR)/$(TOOL_NAME) -rf;rm $(TOOLS_TOP_DIR)/$(TOOL_BUILD) -rf;rm $(TOOLS_TOP_DIR)/$(TOOL_INSTALL) -rf;
总结:
1. GDB 编译最重要的是:要选择到 SDK 能兼容的 GDB 版本;
2. 在编译过程中你可能会有遇到一些麻烦,解决方法如下:
【问题描述】./bfd: No such file or directory
【问题原因】原因有两个如下:
- 其一:可能你工具链是使用 “非 root 权限” 安装的,而你却在(sudo) root 权限下编译了gdb;
- 其二:可能 Makefile --> OSDRV_CROSS ?= arm-mix410-linux 这个工具链,你并没有修改为自己 SDK 对应的工具链版本。
【解决方法】针对以上原因,此处给出了相应的解决方法:
- 其一:若在 (sudo) root 权限下编译gdb,则需要临时配置环境变量:source /etc/profile;
- 其二:修改上边 Makefile --> OSDRV_CROSS 为自己 SDK 对应的交叉工具链。
避开SS524V100 GDB的坑相关推荐
- 如何通过人工智能“避开”内容安全的“坑”?
欢迎访问网易云社区,了解更多网易技术产品运营经验. 10月16日,2018年 AIIA人工智能开发者大会在苏州举办.会议邀请了国内外人工智能产业知名人物.国家政府主管部门.行业内顶尖企业.知名学者代表 ...
- 『全球化产品』应该要避开的几个坑
全球化的浪潮已经到来,越来越多的中国公司正在扬帆出海.根据AppAnnie的统计,目前Google Play中Top 10的移动APP开发公司,有4家来自中国.但是,海外市场相较于国内市场而言,也存在 ...
- 猎豹产品经理:「全球化产品」应该要避开的几个坑
全球化的浪潮已经到来,越来越多的中国公司正在扬帆出海.根据AppAnnie的统计,目前Google Play中Top 10的移动APP开发公司,有4家来自中国.但是,海外市场相较于国内市场而言,也存在 ...
- 教你如何避开雪花算法的坑
教你如何避开雪花算法的坑! https://gitee.com/automvc/bee/blob/master/src/main/java/org/teasoft/bee/distribution/G ...
- 公司取名避开这3个坑,通过率或可提升99%!
点击上方蓝字关注我们 想注册企业开公司 取名是企业诞生的第一步 拉着亲朋好友想破脑袋.一顿讨论, 终于灵光乍现取了个好名字, 兴冲冲的跑去注册, 却惨被拒绝? 企业取名避开以下3个坑,提前准备3-5个 ...
- 注册公司避开这3个坑,通过率提升99%!
想注册企业开公司?取个好名字是企业诞生的第一步!拉着亲朋好友想破脑袋,几番讨论,终于灵光乍现取了个满意的名字,兴冲冲跑去注册,却惨被拒绝?企业取名避开以下3个坑,提前准备3-5个备选名称,通过率或可提 ...
- 如何通过人工智能“避开”内容安全的“坑”? 1
欢迎访问网易云社区,了解更多网易技术产品运营经验. 10月16日,2018年 AIIA人工智能开发者大会在苏州举办.会议邀请了国内外人工智能产业知名人物.国家政府主管部门.行业内顶尖企业.知名学者代表 ...
- 手把手教你如何罗列提纲,避开这3个坑,提升写作效率50%
在提笔写之前,我们在心里已经打好草稿要写什么内容,表达什么思想,然后让看到的人能收获到什么. 这就是列提纲,这是写出一篇文章的最基础结构. 第1个是主题要明确,要符合当代主流,一定是对别人有用 主题明 ...
- 做管理必须避开的六个坑
作者:findyi,腾讯.360码农,前哒哒少儿英语技术VP,现任土豆教育CTO. 很多职场人的工作奋斗目标是走向管理岗.毕竟管理岗意味着会有更多的资源,更高的视野,也更能掌握自己的人生. 今天谈谈一 ...
最新文章
- iphone越狱神器
- Web Service之Soap请求响应内容中文编码解密
- 西南石油大学计算机科学院信息,梁宗文 - 西南石油大学 - 计算机科学学院
- Ubuntu安装screen
- wxWidgets随笔(11)-wxFrame类
- 使用VS2017编译sqlite和在VS2017中配置使用sqlite的简单例子演示
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十)斜度α地图的构造及算法...
- JavaScript闭包函数的理解与使用
- jieba和thulac使用比较
- php自适应在线电影影视网站系统源码
- XCode 4.2.1 项目的几个模版说明
- 并行编程走下神坛 将成为开发者基本技能?
- 软件工程(2018)第3次团队作业
- 如何在SQL Server中检查日期是否为假期
- 计算机网络学习socket--day3
- Java中的Random()函数 【转载】
- Android ViewModel
- 关于 html 中 table 表格 tr,td 的高度和宽度
- C语言闰年还是平年问题程序,c语言判断一年是不是闰年,编程错在哪呢?
- php-fpm前台,php-fpm配置文件详解