GDB基本调试
调试时gcc -g -Wall -o Hello Hello.c
gdb Hello -tui
-g: 生成调试信息
-Wall: 编译器警告信息
-W: 警告信息
在调用GDB时,命令行指定-tui,或在非TUI模式时使用Ctrl+X+A。
TUI模式:上半部分源码,下半部分输入GDB命令
break main: 在main函数第一行可执行代码设置断点
break n: 在第n行设置断点
break 30 if condition: 条件断点,符合condition才会暂停
break +offset/-offset: 在当前选中栈正在执行的代码行之前或之后offset行设置断点
break *address: 在虚拟内存地址设置断点(比如找不到源代码或共享库)
clear n: 删除n行断点
clear list_insert: 删除函数的所有断点
clear list.c:list_delet: 删除文件:函数的所有断点
delete 1 3 4: 删除断点1 3 4
delete 1-4: 删除断点1到4
disable n: 禁用断点
enable 1 5: 启用断点1 5
enable once 3: 临时启用断点3
info break: 列出所有断点
run: 跑程序
run 12 5 6: 向程序传递参数12、5、6
next: 行进到下一行
continue: 恢复执行
tbreak: 创建一个有效次数为1的断点
until: 走出循环体然后停止
finish: 跑完程序
print i: 输出 i
watch z: 监视 z
watch (z>5): 查找程序执行期间z值大于5的第一个位置
栈帧(stack frame)操作:
帧栈是与调用关联的运行时的信息存储在成为栈帧的内存区域,
帧中包含函数局部变量的值,函数形参,以及调用该函数位置的记录。
每次发生函数调用创建一个新帧,函数退出时帧弹出栈,释放。
backtrace: 显示整个栈,即当前所有帧集合
frame n: 当前执行函数的帧编号为0,夫帧为1,以此类推
up: 带到调用栈下一个夫帧
down: 与up方向相反
最新文章
- React 学习资源汇总(最全的 React 学习资料)
- 今天遇到的点击添加按钮button_click代码段无法执行的问题
- Js 关于console 在IE 下的兼容问题
- hdu ----3695 Computer Virus on Planet Pandora (ac自动机)
- ucenter实现原理
- NOJ 1643 阶乘除法(YY+小技巧)
- 父元素与子元素之间的margin-top问题(css hack)(转载)
- StaggeredGridView+universal-image-loader载入网路图片实现瀑布流
- MFC与Qt的内存管理
- 物理卷操作命令:pvcreate,pvscan,pvdisplay.卷组操作命令:vgcreate,vgdisplay. (转)
- network: 思科-华为光模块
- subversion javahl
- flask 上传文件
- Glog 和 Log4cxx 的对比
- js之数组操作
- nginx日志分割
- SQL2008 一直error40 无法连接到localhost
- ArcGIS教程:曲率
- CentOS 下搭建Gitlab
- 关于kvm虚拟机的克隆方法总结
热门文章
- hud 1166 敌兵布阵
- mysql一些写常用命令
- HDU 3911 Black And White (线段树区间合并 + lazy标记)
- HDU 3661 Assignments (水题,贪心)
- POJ 3671 Dining Cows (DP,LIS, 暴力)
- CodeForces 732A Buy a Shovel (水题)
- Nginx启动停止命令
- iOS开发-为程序添加应用设置
- Middleware课程01-概述
- zoj 2112 Dynamic Rankings 动态第k大 线段树套Treap