gdb调试的常用参数说明

gcc hello.c -g -o hello 就会生成待调试信息的hello可执行程序

gdb hello 就会进入调试状态

查看源代码:

l 查看main源代码(L的小写,不是数字1),list的缩写

l [filename:linenum] 查看指定文件的指定行的源代码

继续查看按l

l [filename:func] 查看指定文件的指定函数的源代码

继续查看按l

设置断点:

b [linenum] 第几行打断点,或者break的缩写

b [10] if [i==5] 就是在第十行当i等于5时停下

b [func] 在func函数入口处打断点

del/d [num] 删除断点,del即delete,num通过info break查看,没有[num]表示全部删除,num也可以是一个范围,比如(2,8)

disable [num] 禁用断点,num通过info break查看

enable [num] 启用断点,num通过info break查看

查看值:

i b 查看断点,i即info,b即break,

p a 打印变量a的值,p即print

ptype a 打印a的变量类型

display a 追踪变量a,一般循环里面使用

undisplay [num] 不追踪变量,num通过info break查看

set var i=10 直接从i等于10开始执行,一般用于循环里面

运行程序:

start 只执行一次

r 即run,也是启动调试

quit 退出调试状态

n 即next,执行下一步

c 即continue,执行到下一个断点处

u 即util,跳出单次循环

s 即step,进入函数

finish 跳出当前函数,需要先删除该函数的所有断点del [num]

时间: 2024-12-10 09:29:14

gdb调试的常用参数说明的相关文章

GCC编译器和GDB调试器常用选项

http://blog.csdn.net/u014328976/article/details/46745349 GCC编译器 gcc hello.c -o hello                   #将hello.c编译成hello可执行文件 gcc -E hello.c -o hello.i              #将hello.c 转换成预处理后的文件hello.igcc -S hello.c -o hello.S              #将hello.c 转换成汇编文件 h

gdb 调试学习

gdb 是unix/linux 系统下的程序调试工具,和IDE(如VS, Eclipse等)的图形化调试工具相比,gdb在断点,跟踪显示方面有着不足,但是它在某些方面比图形化调试工具更加丰富的功能. gdb 调试前提 如果希望程序能够被gdb调试,则需要在编译程序时候,指定 -g 选项. gdb 的调试和程序的release 优化一样,也存在着级别,可以手动设置.默认的gdb级别为2, 当把gdb的调试级别设置为3的时候,可以在gdb调试过程中 macro expand/exp  对程序中的宏定

自己常用GDB调试命令

1.进入gdb调试模式 $ gdb xxx(程序名) 设置函数参数:set args  xxx 查看函数参数:show args 2.break 行号 (打断点) 3.delete 行号 (取消断点) 4.next 单步运行 5.step 进入函数内部 6.finish 退出当前函数 7.print 变量名/*(指针)   :查看变量的运行中的值 9.continue 继续执行 9.退出调试模式 signal SIGINT /  强行退出 signal SIGKILL 10.2次Tab 可补全命

GDB调试技巧:常用命令

一 写在开头 1.1 本文内容 总结GDB调试的一些常用命令.不定期更新. 二 常用命令 GDB和VIM一样,功能异常强大,但要熟练掌握它却很需要费时间.不过,尽管它们两个的命令多如牛毛,但只要掌握最常用的那几个命令就可以快速上手.下面的列表总结了GDB最常用的几个命令. 简写 全称 备注 l list 显示指定行号或者指定函数附近的源代码 b break 在指定行号或者指定函数开头处设置断点.如b main r run 运行程序,直到程序结束或者遇到断点而停下 c continue 在程序中断

GDB调试——常用的命令

首先说明一点,如果我们要使用GDB来调试我们的C/C++程序时,在使用GCC编译程序时,应该带上 –g 参数, 它负责生成 与GDB相关的调试信息: 1.如何对一个文件启动GDB调试? 方法一: 命令行输入:  gdb filename 方法二: 命令行输入: gdb                 , 进行gdb工作界面以后,再输入命令: file filename             ,其中file为gdb的一个命令: 2. 常见的GDB命令: 命令 解释 示例 file <文件名>

gdb调试常用实用命令和core dump文件的生成(转)

1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的文件 2.调试core dump文件 生成了core.xxx文件以后 $  gdb ./应用程序  core.xxxx 就会恢复现场到你的程序崩溃的那一刻 (gdb)bt          //这个命令会列出程序崩溃时的堆栈信息,一层一层会有标号  #0  #1  #2 ....... 如果你要查看

gdb调试常用功能

一.gdb中宏定义 macro define list_entry(ptr, type, member) ((type)( (char)ptr - (unsigned long)(&((type*)0)->member))) 二.gdb中变量定位 set $i = 0 注: 操作符左右两端可以带空格: 变量以$开头,防止与被调试程序中的变量冲突 三.条件 & 循环 if ( xxx != 1 ) ... end while( xxx != 1) ... end 四.gdb调试输出到文

gdb调试命令

本篇摘自互联网,纯属自己学习笔记,然分享给看到我的博客的人们. 用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能. 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能.而Windows下的图形软件基本上是各自为营,

[转]GDB调试基础

一.gdb常用命令: 命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 info(或i) locals 查看当前栈帧局部变量的值 list(或l) 列出源代码,接着上次的位置往下列,每次列10行 list 行号 列出从第几行开始的源代码 list 函数名 列出某个函数的源代码 next(或n) 执行下一行语句 print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函