gcc中gdb调试工具的使用

首先,利用gcc编译源文件时添加 -g 选项生成可调试的文件,例如,要调试test.c文件,输入命令 $ gcc -g test.c -o test_gdb 生成test_gdb文件。

然后,运行命令 $ gdb test_gdb 可进入调试模式。

在调试模式中,(gdb) 表明此时可输入命令,常用的gdb调试命令如下:

GDB常用命令 格式 含义 简写
break Break [行号或函数名] 在程序中设置一个断点 b
cd Cd 目录 改变当前的工作目录  
continue Continue [开始,结束] 从断点开始继续执行 c
delete Delete breakpoints 断点号 删除一个断点  
display Display 变量名 显示参数  
file File 文件名 加载文件  
info Info 变量名 列出变量的信息 i
kill Kill 终止程序运行  
list List [开始,结束] 列出文件的代码清单 l
next Next 下一行 n
print Print 变量名 打印变量内容
pwd Pwd 显示当前的工作目录  
quit Quit 退出gdb q
run Run args 运行程序 r
step Step 下一步(可进入函数内部执行) s
watch Watch 变量名或表达式 设置变量或表达式的监测点  
时间: 2024-10-14 15:30:30

gcc中gdb调试工具的使用的相关文章

ubuntu中gdb调试工具的使用

首先有一段.c代码 1.可调试gcc编译:gcc -g -o xxx xxx.c 2.启动gdb调试 gdb xxx 3.在main函数处设置断点 break main 4.运行程序 run 5.其他调试命令 list(l)查看程序 break(b) 函数名:在某函数入口处添加断点 break  行号:在指定行添加断点 break  文件名:行号   在指定文件的指定行添加断点 info  break  查看所有设置的断点 delete 断点编号  删除断点编号的断点 -------------

【Linux】GDB调试工具

GDB调试工具 Linux中包含一个很强大的调试工具GDB(GNU Debuger),可以用它来调试C和C++程序. 一. GDB的主要功能有: 设置断点,当程序运行到断点处暂停 显示变量的值,可以打印或者监视某个变量,将变量的值显示出来 单步执行,GDB允许用户单步执行程序,可以跟踪进入函数和从函数中退出 运行时修改变量的值,GDB允许在调试状态下修改变量的值,此功能在测试程序的时候特别有用 路径跟踪,GDB可以将代码的路径打印出来,方便用户跟踪代码 线程切换,在调试多线程的时候,此种功能是必

GDB调试工具的实践

GDB是GNU Debuger的简称,是GNU发布的一款unix下应用程序调试工具.它被广泛使用在各个产家各种应用中.GDB和所有常用的调试工具一样,它的主要功能有:监视变量的值.设置断点及单步执行. 注意,在源程序编译时,要使用gcc -g 或 cc -g 或 g++ -g将源程序编译成可执行文件,然后才能使用gdb进行调试.只有这样,生成的可执行文件才包含调试信息. 参考别人的写一个简单的c程序,在linux下使用gcc编译成可执行文件,然后使用gdb进行调试. 程序源代码如下 #inclu

使用 GNU GCC 和 GDB 开发调试应用程序

gcc 命令的使用 在使用GCC编译程序时,编译过程可以被细分为四个阶段: 预处理(Pre-Processing) 编译(Compiling) 汇编(Assembling) 链接(Linking) 如果不加任何参数, gcc 默认执行所有的操作,直接生成可执行文件. 以上四个阶段对应参数为: 1.        -E  只执行预处理 2.        –S  只编译,不汇编和链接 3.        –c  编译汇编不链接 4.        –o  链接成目标文件 GCC常用选项 -c 通知

使用 Strace 和 GDB 调试工具的乐趣

编写 UNIX® 系统程序充满乐趣,并且具有教育意义.使用 UNIX strace 工具和 GDB(GNU 项目调试工具),您可以真正地深入研究系统的功能,并了解组成这些功能的各种各样的程序.同时使用这两种工具,能够在查看 UNIX 计算机底层信息 的时候,给您带来更好的体验. UNIX 家族总是为用户提供了丰富的工具.UNIX 是一个工具财宝箱,有了这些工具,您不仅可以完成具有创造性的工作,还可以在深入研究该操作系统的同时得到教育和娱乐.strace(用来跟踪任何程序的系统调用)和 GDB 调

GDB调试工具总结

程序调试的基本思想是“分析现象->假设错误原因->产生新的现象去验证假设”这样一个循环过程,根据现象如何假设错误原因,以及如何设计新的现象去验证假设,需要非常严密的分析和思考.程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪,到目前为止自己使用过的调试手段只有一种: 根据程序执行时的出错现象假设错误原因,然后在代码中适当的位置插入printf(驱动使用printk函数),执行程序并分析打印结果,如果结果和心里预期的一样,就基本上证明了自己假设的错误原因,就可以动手修正Bug了

使用gcc编译gdb调试

gcc 在linux系统中,默认是没有安装gcc编译器的,可以通过命令 rpm -q | grep gcc 来查看.安装命令为: yum -y install gcc 安装后,编写一个.c结尾的文件. gcc test.c 就会默认输出一个a.out的输出文件,这个输出文件就是可执行文件. 如果加上-o选项,则可以自定目标文件. gcc -o test test.c test就是它的可执行文件. 一般都默认加上-Wall 选项,可以自动提示一些出错警告的信息. gcc -Wall -o test

Android系统开发(2)——GDB调试工具

调试的过程 我们在eclipse中来看一下一般调试的过程: 1.debug模式编译 2.打上断点 3.运行调试 4.单步调试 step into:跳到函数体内部 step over:不跳到函数体内 step return:运行完当前函数 5.继续运行 continue 6.打印和监控值 GDB调试 先写一段C++的代码,代码内容如下: 使用debug模式编译: 进入Debug调试模式: 1.打断点,打断点的方式如下(GDB中的命令可以使用首字母来替代,比如break和b的作用相同) break 

gcc和gdb的基本操作

gcc和gdb yum 在线安装软件,使用阿里云镜像站,OPSX 选择你安装的系统 点帮助 查看配置命令行 yum --list | grep gdb #查找要安装的软件 yum install -y gdb #不需要确认安装软件 gcc 1. 预处理 .i文件 -E 预处理 -o 指定输出文件名 例 : gcc -E hello.c -o hello.i 作用 : 干掉注释 宏替换 pragma 不替换 加入很多行号信息,用于报错和警告使用 2. 编译 .s 文件 -S 编译 例 : gcc