当前位置:文档之家› 嵌入式调试程序GDB

嵌入式调试程序GDB


选项 -lNAME使链接器尝试链接系统库目录中的函 数库文件 libNAME.a。
-I dir -r目录 在库文件的搜索路径列表中添加dir目录
Step Three
GCC编译实例 编译多个源文件
# gcc -Wall calc.c calc _fn.c -o newcalc
Step Three
GCC编译实例 编译简单的 C 程序
# gcc -g -Wall test.c -o
选项 ""-g"" 表示在生成的目标文件中带调试信息 选项 -Wall 开启编译器几乎所有常用的警告
Step Three
GCC编译实例 链接外部库
# gcc -Wall calc.c -lm -o calc
GNU Debugger最初是在1988年由理查德·马 修·斯托曼(Richard Stallman,自由软件的精神 领袖)所撰写,之后以GNU通用公共许可证的授 权方式将软件发布。 https://
任务要求
Step One Step Two Step Three
安装GDB 熟悉GDB常用命令 GDBServer远程调试
了解GDB
GDB是一个强大的命令行调试工具。UNⅨ下的软件全 是命令行的,这给程序开发提代供了极大的便利,命令行软 件的优势在于,它们可以非常容易的集成在一起,使用几个 简单的已有工具的命令,就可以做出一个非常强大的功能。
UNⅨ下的软件比Windows下的软件更能有机地结合, 各自发挥各自的长处,组合成更为强劲的功能。Windows 下的图形软件基本上是各自为营,互相不能调用,很不利于 各种软件的相互集成。“寸有所长,尺有所短”,图形化工 具还有时不如命令行的地方。
GDB功能
启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条
件表达式) 当程序被停住时,可以检查此时你的程序中所发生的事。 你可以改变你的程序,将一个BUG产生的影响修正从而测试其他
BUG。
GNU Debugger
Step Three
程序的编译过程 预处理阶段
# gcc –E hello.c –o hello.i
编译阶段
# gcc – S hello.i –o hello.s
Step Two
程序的编译过程 汇编阶段
# gcc –c hello.s –o hello.o
链接阶段
# gcc hello.o –o hello
Step One
安装GDB 通过GDB –v查看当前的GDB版本
# gdb -v
解压gcc源码包
# tar xzvf gdb-7.4.tar.gz
Step Two
Step Two
如何单步执行? 如何打印变量的值?(print var) 如何打印变量的地址?(print &var) 如何打印地址的数据值?(print *address) 如何查看当前运行的文件和行?(backtrace) 如何查看指定文件的代码?(list file:N) 如何立即执行完当前的函数,但是并不是执行完整个应用程序?(finish) 如果程序是多文件的,怎样定位到指定文件的指定行或者函数?(list file:N) 如果循环次数很多,如何执行完当前的循环?(until)
相关主题