功能强大的gdb
来源:互联网 发布:js如何控制光标大小 编辑:程序博客网 时间:2024/05/19 20:39
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。它是学习指针、调试程序非常有用的工具和方法:
一.gdb常用命令:
brakepoint (b) 断点
backtrace(或bt) 查看各级函数调用及参数
finish 连续运行到当前函数返回为止,然后停下来等待命令
frame(或f) 帧编号 选择栈帧
info(或i) locals 查看当前栈帧局部变量的值
list(或l) 列出源代码,接着上次的位置往下列,每次列10行
list 行号 列出从第几行开始的源代码
list 函数名 列出某个函数的源代码
next(或n) 执行下一行语句
print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q) 退出gdb调试环境
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
step(或s) 执行下一行语句,如果有函数调用则进入到函数中
二、gdb使用例子
简单地编译执行下上面的程序#gcc add,c -o add
接下来,试用下gdb的命令,先看看help命令
help命令可以查看gdb 有哪些命令行及使用规则。
现在看看list的命令
由上面可以看出,list 命令一次只能列出十行的源代码,如果要列出十一行后的下面可以直接回车
在gdb中用b来设置断点,比如设置26行的断点(b 26).c的命令是往下继续执行
在gdb调试中,n和s都可以继续往下执行程序,但s如果有函数的话则进入到函数中。
在gdb可以用printf打印指针的地址,也可以用来改变变量的值
- 功能强大的gdb
- 功能强大的源码级调试器--gdb
- 功能强大的TASKLIST命令
- 功能强大的SendMessage函数
- 增加功能强大的搜索引擎
- 功能强大的SendMessage函数
- 功能强大的CGI语言
- 功能强大的Regsvr32命令
- SAX,功能强大的 API
- 功能强大的Regsvr32命令
- 功能强大的SendMessage函数
- 功能强大的大数模板
- 功能强大的SQL语句
- 功能强大的JSON类
- 功能强大的sed命令
- 功能强大的Regsvr32命令
- 功能强大的SendMessage函数
- 功能强大的sscanf 函数
- 线段树的建立、查询、更新及应用
- HDU 5113 Black And White(DFS)
- PAT 1007.素数对猜想(20)
- Ubuntu 下进制自动挂载 Android MTP
- CCF之字符串的匹配
- 功能强大的gdb
- Python缩进坑
- [论文解读] Vote3Deep: Fast Object Detection in 3D Point Clouds Using Efficient CNN
- Spark-submit脚本
- 给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。
- [论文解读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- noip2007普及组T1--T4题解
- Apache 容器 Directory Location Files 及htaccess文件
- VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二