linux嵌入式gdb调试指南,建立嵌入式gdb调试环境
一、下载gdb-6.4.tar.gz源代码
http://ftp.gnu.org/gnu/gdb/
二、编译 GDB
#tar zxvf gdb-6.4.tar.gz
2.1、编译GDB Server
#cd gdb-6.4
#./configure --target=arm-linux --prefix=/usr/local/arm-gdb
#make
注意: 这里如果你用的是gcc-4.3.2的话,编译可能会出错!你可以改成 gcc-4.1 就可以顺利编译通过
编译ARM用的GDB时出现error: no termcap library found错误的解决方法2009年03月28日 星期六 21:55在Ubuntu下编译gdb时出现如下错误:
........
checking for library containing gethostbyname... none required
checking for library containing socketpair... none required
checking for library containing waddstr... no
checking for library containing dlgetmodinfo... no
checking for library containing tgetent... no
configure: error: no termcap library found
make[1]: *** [configure-gdb] 错误 1
解决方法:sudo apt-get install libncurses5-dev
安装完后,在make就OK了!
#make install // 生成/usr/local/arm-gdb/bin
2.2、编译GDB Client
#cd ./gdb/gdbserver
#export PATH=$PATH:/usr/local/arm-gdb/bin
#./configure --target=arm-linux --host=arm-linux
#vi config.h
//#define HAVA_SYS_REG_H //注释此句
#make CC=arm-softfloat-linux-gnu-gcc //编译用于目标机的stub程序 生成gdbserver是GDB客户端程序,在板子上运行。
三、实战调试
1.编辑文件
# vi gdbtest.c
1 #include
2
3 int
4 func(int n){
5 int sum=0, i;
6 for (i=0; i
7 sum += i;
8 }
9 return sum;
10 }
11
12 int
13 main(void)
14 {
15 int i;
16 long result = 0;
17 for (i=0; i<=100; i++){
18 result += i;
19 }
20
21 printf("result[1-100] = %d \n", result);
22 printf("resutl[1-225] = %d \n", func(255));
23
24 return 0;
25 }
# arm-linux-gcc -g gdbtest.c -o gdbtest // 交叉编译
2.下载文件到目标板: gdbtest和gdbserver
假设 host pc ip:192.168.1.45
board ip:192.168.1.180
将文件拷贝到目标板上:
先将gdbtest和gdbserver两个文件拷贝到主机的/tftpboot目录下
在目标板的Linux中运行:
#mount 192.168.1.108:/tftpboot /mnt/nfs
#cd /mnt/nfs
#ls
看是否有gdbtest和gdbserver两个文件。
3.运行调试
client board:
#./gdbserver 192.168.1.45:1234 gdbtest // 目标板上运行gdbtest 监听端口1234
host pc:
#cd /usr/local/arm-gdb/bin/
#copy gdbtest /usr/local/arm-gdb/bin/ // 将前面编译的文件gdbtest拷贝到此目录
#./arm-linux-gdb gdbtest
(gdb)target remote 192.168.1.180:1234 // 连接到开发板 成功后就可以进行调试
(gdb)list or l
(gdb)break func
(gdb)break 22
(gdb)info br
(gdb)continue or c // 这里不能用 run
(gdb)next or n
(gdb)print or p result
(gdb) finish // 跳出func函数
(gdb) next
(gdb) quit
建立连接后进行gdb远程调试和gdb本地调试方法相同
linux嵌入式gdb调试指南,建立嵌入式gdb调试环境相关推荐
- GDB调试指南(入门,看这篇够了)
写这篇文档的目的是对前面GDB的知识做一次总览,本文为GDB调试指南,参考GDB调试手册,目前已有的篇目: 启动调试 断点设置 查看源码 单步调试 查看变量 前言 GDB是Linux下非常好用且强大的 ...
- gdb 调试_GDB调试指南-源码查看
前言 我们在调试过程中难免要对照源码进行查看,如果已经开始了调试,而查看源码或者编辑源码却要另外打开一个窗口,那未免显得太麻烦.文本将会介绍如何在GDB调试模式下查看源码或对源码进行编辑. 准备工作 ...
- GDB调试指南-单步调试
前言 前面通过<启动调试>,<断点设置>,<变量查看>,我们已经了解了GDB基本的启动,设置断点,查看变量等,如果这些内容你还不知道,建议先回顾一下前面的内容.在启 ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(一)(转)
自 MiniGUI 从 1998 年底推出以来,越来越多的人开始选择 MiniGUI 在 Linux 上开发实时嵌入式系统.为了帮助嵌入式软件开发人员使用 MiniGUI编写出更好的应用程序,我们将撰 ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统
简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南
内容: 1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Thread ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八)
基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八) MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统 魏永明 (ymwei@minigui.org) 自由撰稿人 ...
- 10001.基于Linux和MiniGUI的嵌入式系统软件开发指南(转载)
1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Threads 或者 ...
- Linux上程序调试的基石(2)--GDB
3. GDB的实现 GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序.可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况.它的实现也是基于ptrace系统调用来完成的. ...
最新文章
- compass安装使用960 Grid System
- 谈谈对于企业级系统架构的理解(zz)
- php贺卡生成,用php与mysql的电子贺卡程序
- 【供参考】2021 中国一流大学名单(30 所)和中国大学综合实力 700 强出炉!
- Spring学习(九)Spring 和数据库编程【了解】
- iOS基础-高级视图-UITableView--静态单元格
- 【转】ABP源码分析二十五:EventBus
- Eclipse中Program arguments和VM arguments的说明
- C语言学习笔记---typedef 简介
- 【算法设计】最大子矩阵问题
- CSDN积分获取规则
- 软件测试和初级会计哪个简单,2018年初级会计app刷题哪个好?
- CSS相对定位,固定定位,绝对定位
- 儿童节html5小游戏,六一儿童节室内小游戏有哪些
- 工作多年想转行,有哪些正确的方法及技巧呢
- 零基础学C++Note
- 产品经理和软件工程师的职能划分
- 强化学习训练Chrome小恐龙Dino:最高超过4000分
- 写给屌丝程序员的免费空间个人blog的建站攻略
- 计算机数据恢复视频教程,快速扫描误删除文件 文件数据恢复软件 视频文件数据恢复效果最佳...