GDB 基本命令
2017-11-13 21:59
176 查看
什么是GDB ?为什么需要GDB?没有GDB行不行?有了GDB有哪些好处?
GDB是GNU开源公司开发的一个强大的程序调试工具。
如果在Linux下运行程序,GDB这个工具会有比VC,BCB更加强大的功能。
GDB主要作用:(就是帮助我们自动完成设定好的操作)
① :启动程序,可以按照自定义的要求运行程序
② :可以让被调试的程序在你指定的断点处停住
③ :当停住时,可以查看程序(如变量的值)
④ :动态的改变程序的运行环境
GDB指令:(在linux下编译生成可执行文件)
gcc –g test.c -o test
启动GDB:gdb ./ test
运行程序:run
查看代码:l (list)
格式:list (默认显示10行,可重复执行显示全部代码)
set listsize (设置显示行数,如set listsize 20)
设置断点:break (breakpoint)
格式:break [function]或break [标号]
break filename :linenum (在源文件的第linennum行停住)
break (若没有参数则停在下一条指令处)
break [function] 或[标号] if [condition](在条件成立时才停止程序)
break 20 if i==3
设置观察点:watch (watchpoint)
观察点一般观察某个表达式的值是否发生变化,如果有变化,马上停住程序
格式:watch [变量]或[表达式](为变量设一个观察点,当这变量一有变化就停止运行)
rwatch [变量]或[表达式] (当变量被读时,停止)
awatch [变量]或[表达式] (当变量被读或写时,停止);
查看断点:info break
查看观察点:info watch
继续运行:finish
继续运行:continue (继续执行直到下一个断点,若没遇到断点就运行到结束)
finish和continue 的区别
①、finish:运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息
②、continue [ignore-count] c [ignore-count] fg [ignore-count]
恢复程序运行,直到程序结束,或是下一个断点到来。ignore-count表示忽略其后的断点次数。continue,c,fg三个命令都是一样的意思。
单步执行:step
单步执行:next
step与next的区别
step:一行一行执行,遇到函数时,调到函数内运行
next:一行一行执行,遇到函数时,调过函数运行,不会进入函数。
删除断点:delete、clear、
格式:delete [标号]
clear [function]
clear [filename:linenum]
忽略断点:disable (GDB不会删除断点,当你又需要时,enable就可以)
格式:disable [标号]
退出GDB:quit
标号是info的编号
GDB是GNU开源公司开发的一个强大的程序调试工具。
如果在Linux下运行程序,GDB这个工具会有比VC,BCB更加强大的功能。
GDB主要作用:(就是帮助我们自动完成设定好的操作)
① :启动程序,可以按照自定义的要求运行程序
② :可以让被调试的程序在你指定的断点处停住
③ :当停住时,可以查看程序(如变量的值)
④ :动态的改变程序的运行环境
GDB指令:(在linux下编译生成可执行文件)
gcc –g test.c -o test
启动GDB:gdb ./ test
运行程序:run
查看代码:l (list)
格式:list (默认显示10行,可重复执行显示全部代码)
set listsize (设置显示行数,如set listsize 20)
设置断点:break (breakpoint)
格式:break [function]或break [标号]
break filename :linenum (在源文件的第linennum行停住)
break (若没有参数则停在下一条指令处)
break [function] 或[标号] if [condition](在条件成立时才停止程序)
break 20 if i==3
设置观察点:watch (watchpoint)
观察点一般观察某个表达式的值是否发生变化,如果有变化,马上停住程序
格式:watch [变量]或[表达式](为变量设一个观察点,当这变量一有变化就停止运行)
rwatch [变量]或[表达式] (当变量被读时,停止)
awatch [变量]或[表达式] (当变量被读或写时,停止);
查看断点:info break
查看观察点:info watch
继续运行:finish
继续运行:continue (继续执行直到下一个断点,若没遇到断点就运行到结束)
finish和continue 的区别
①、finish:运行程序,直到当前函数完成返回。并打印函数返回时的堆栈地址和返回值及参数值等信息
②、continue [ignore-count] c [ignore-count] fg [ignore-count]
恢复程序运行,直到程序结束,或是下一个断点到来。ignore-count表示忽略其后的断点次数。continue,c,fg三个命令都是一样的意思。
单步执行:step
单步执行:next
step与next的区别
step:一行一行执行,遇到函数时,调到函数内运行
next:一行一行执行,遇到函数时,调过函数运行,不会进入函数。
删除断点:delete、clear、
格式:delete [标号]
clear [function]
clear [filename:linenum]
忽略断点:disable (GDB不会删除断点,当你又需要时,enable就可以)
格式:disable [标号]
退出GDB:quit
标号是info的编号
相关文章推荐
- GDB 多线程调试基本命令和一个实例问题的解决(转贴)
- gdb基本命令
- IOS开发之----常用的基本GDB命令【转】
- GDB多线程调试基本命令和实现简介以及一个常见问题的解决
- gdb基本命令
- GDB 基本命令使用
- GDB 和 CDB 基本命令比较
- Linux系统下——GDB调试工具基本命令
- gdb基本命令(非常详细)
- gdb基本命令总结
- GDB多线程调试的基本命令。
- GDB调试基本命令(一)
- gdb基本命令
- GDB调试命令(一)---基本命令
- gdb基本调试命令
- gdb基本命令
- gdb基本命令 与 技巧
- gdb调试基本命令列表
- linux下gdb调试基本命令学习
- linux之gdb基本调试命令和使用总结