应用程序调试工具gdb

                  应用程序调试工具gdb学习使用

一、GDB简介

GDB 是 GNU 发布的一款功能强大的程序调试工具。GDB 主要完成下面三个方面的功能:

1、启动被调试程序。
2、让被调试的程序在指定的位置停住。
3、当程序被停住时,可以检查程序状态(如变量值)。

1.1gdb使用流程

1.编译生成可执行文件:
  gcc –g tst.c -o tst
2.启动 GDB
  gdb tst(文件名)
3. 在 main 函数处设置断点
  break main
4. 运行程序
  run
5. 利用更加丰富的 gdb 命令对程序进行调试。

1.2gdb命令

1.list(l) 查看程序
2.break(b) 函数名 在某函数入口处添加断点
3.break(b) 行号 在指定行添加断点
4.break(b) 文件名:行号 在指定文件的指定行添加断点
5. info break 查看所有设置的断点
6. delete 断点编号 删除断点
7.next(n) 单步运行程序(不进入子函数)
8.step(s) 单步运行程序(进入子函数)
9.continue(c) 继续运行程序知道下一个断电
10.print(p) 变量名 查看指定变量值

11. set var=value 设置变量的值

12.quit(q) 退出 gdb

二、使用实例

时间: 2024-10-10 21:37:19

应用程序调试工具gdb的相关文章

C实战:强大的程序调试工具GDB

C实战:强大的程序调试工具GDB 1.基本调试 这里只列举最最常用的GDB命令. 1.1 启动GDB gdb program:准备调试程序.也可以直接进入gdb,再通过file命令加载. 1.2 添加断点 b function:为函数设置断点.b是break的缩写,除了函数名,还可以是地址.当前执行处的+/-偏移等. 1.3 运行程序 run args:开始运行程序,run后面可以加程序需要的参数,就像在命令行正常运行时那样. 1.4 单步调试 s/n/si/c/kill:s即step in,进

Linux GDB程序调试工具使用简介

GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.所谓"寸有所长,尺有所短"就是这个道理. 一般来说,GDB主要帮忙你完成下面四个方面的功能: 启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式) 当程序被停住时,

Linux GDB 程序调试工具使用详解

转自    http://www.codeceo.com/article/linux-gdb-tools.html 整理的挺全的 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能.所谓“寸有所长,尺有所短”就是这个道理. 一般来说,GDB主要帮忙你完成下面四个方面的功能: 启动你的程序,可以按照你的自

windows下使用MinGW的调试工具gdb.exe调试C程序

1.编译源代码 C:MinGW\bin>gcc.exe -g -o program.exe program.c 编译选项上要加上“g”,这样生成的目标程序会含有调试内容,再用gdb调试的时候才能使用.显然加上“g”选项生成的应用程序会比不加的大,但两者运行时没有差别. 2.启动调试 C:MinGW\bin>gdb.exe program.exe 3.设置断点并启动运行 (gdb)break main(gdb)start 不能直接start,因为程序运行太快了,直接start就运行到程序停止的地

关于 Xcode 调试工具 GDB and LLDB

xcode 5 好像弃用了GDB .而默认使用苹果自己开发的调试工具 LLDB. http://iosre.com/forum.php?mod=viewthread&tid=52    LLDB http://www.devdiv.com/lldb_message_sent_to_deallocated_instance_-blog-50901-50856.html //LLDB 调试 http://blog.sina.com.cn/s/blog_489ab04e0100wj3x.html   

Windowns下远程调试Linux下程序(MinGW+GDB+SlickEdit+GDBServer)(有待完善)

前言: 本文思路来自嵌入式开发,Linux下远程调试开发板.废话不多说,开始吧!! Windown端: 一.下载和解压MiniGW, 从官网下载MiniGW,解压.(本例放在C:\) 二.下载和解压GDB:下载地址为:http://ftp.gnu.org/gnu/gdb/(本文以gdb-7.2为例,放在C:\) 三.在Windowns下编译GDB 运行C:\MinGW\msys\1.0\msys.bat $ cd c: $ cd gdb-7.2 $./configure --target=i68

linux开发调试工具---GDB的使用

编译 gcc  -g  xxx.c  -o xxxgdb gdb  xxxgdb 进入gdb调试界面 查看代码 list   ==>  l 设置断点   可以以函数为断点 /  行数 break    function/lines 查看断点 info    breakpoints 执行代码 run  ==> 也可以直接输入 r start ==> 也可以直接输入s 单步调试 下一步 next  ==>也可以直接输入 n 执行到下一个断点 continue ==> 也可以直接输

程序员修炼之路

0.前言:在路上,再上路 在前言<程序员修炼之路-(0)前言:在路上, 再上路>中已经对知识体系进行了梳理,主要分为问题定义.算法与数据结构.系统平台API.编程语言实现.代码设计.测试验证等等.目前集中精力编写算法与数据结构部分,这可能也是最艰难的一部分.其他部分之前零零散散有所涉及,之后再慢慢补充. 1.计算机数学 离散数学与具体数学. 2.算法分析设计 对于这一部分的内容编排,主要以<算法设计与分析基础>.<算法>以及LeetCode算法题中的问题分类为横向,以&

Linux调试工具

1. 使用printf调试 #ifdef DEBUG Printf(“valriable x has value = %d\n”, x) #endif 然后在编译选项中加入-DDEBUG 更复杂的调试应用如: #define BASIC_DEBUG 1 #define EXTRA_DEBUG 2 #define SUPER_DEBUG 4 #if (DEBUG &EXTRA_DEBUG) printf … #endif 在这种情况下如果设置编译器标志为-DDEBUG=5,将启用BASIC_DEB