2016-07-20 23:05
⁄ 工业·编程
⁄ 共 2912字
在调试程序的过程中,可以自由地查看相关的源代码(如果有源代码的话)是一项最基本的特性。
一些IDE在这方面做得相当好,GDB当然也提供了这项特性,虽然不如IDE直观,但在一定程度上要比IDE更加灵活和快捷。
GDB之所以能够知道对应的源代码,是因为调试版的可执行程序中记录了源代码的位置;因为源代码的位置在编译之后可能会移动到其它地...
GDB, 软件调试阅读全文
2016-07-17 22:47
⁄ 工业·编程
⁄ 共 1481字
一、gdb简介
gdb:GNU debugger
UNIX及UNIX-like下一个强大的命令行的调试工具
gdb调试的整体架构如下图所示:
可以发现gdb调试不管是本地调试还是远程调试,都是基于ptrace系统调用来实现的
二、ptrace
ptrace系统调用的原型:
long ptrace(enum __ptrace_request request, pid_t pid,void *addr,void *data);
ptrace系统调用提供了一种方法,让父进程可以观察和控制其它进程的执行,检查和改变其核心映像及寄存...
GDB, 软件调试阅读全文
2016-07-14 22:33
⁄ 工业·编程
⁄ 共 5658字
在对嵌入式进行调试之前,必须要生成调试器。经典地,Linux平台下的调试器为gdb。
1、下载gdb: 下载地址为: http://www.gnu.org/software/gdb/download/ 按照一般的想法,最新版本越好,因此下载7.2这个版本。当然,凡事无绝对。 我们以gdb-7.2.tar.bz2 这个文件为例。
2、解压缩: $ tar jxvf gdb-7.2.tar.bz2 注:小技巧:Linux下一般压缩文件后缀为.tar.bz2和.tar.gz,它们解压...
GDB, 开源, 软件调试阅读全文
2016-07-03 06:42
⁄ 工业·编程
⁄ 共 644字
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:
1 在程序中设置断点,当程序运行到断点处暂停
2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来
3 单步执行
4 运行时修改变量的值
5 跟踪路径
6 线程切换
等等
下面以以下程序为例
当我们要使用GDB进行程序的调试时,在用GCC编译时需要加上-g,如下:
GDB之所以能够进行程序的调试也是在于进行编译时的-g选项,当...
GDB, 软件调试阅读全文
2015-12-20 21:33
⁄ 工业·编程
⁄ 共 1209字
最近使用GDB比较多,发现除了最常用的run、break、continue、next等命令的基本用法外,还有一些非常有用的命令和用法,能让你更加得心应手地使用GDB,在这里做了一下简单的总结。
1. run
当GDB的程序需要带参数运行时,除了使用set args外,还可以直接在run(r)后面带上参数,如下面两种方式是等价的:
2. set follow-fork-mode
有时候会发现GDB无法跟踪到设置的断点,原因可能是需要调试的进程是daemon进程或者fo...
GDB, 软件调试阅读全文