GDB基本调试
2016-04-26 15:05
232 查看
调试时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方向相反
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方向相反
相关文章推荐
- nginx 服务器重启命令,关闭
- 模式识别(Pattern Recognition)学习笔记(七)——线性分类器及线性判别函数
- char*,const char*和string的相互转换
- cocos2dx 在Android.mk加源所有.CCP文件
- ArrayList
- yum 下载 源码
- OSAtomic原子操作
- Rxjava
- 出现An internal error occurred during: “Building workspace”.的解决方法
- LeetCode 10.6 Restore IP Addresses
- Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForUmengDebug'. > com.androi
- CRichEditCtrl使用大全
- 使用PHP导入和导出CSV文件
- Linux 回收用户空间资源
- C/C++复习:分数减法(结构体)
- cocos2dx3.2 某些UI白屏或使用ClippingNode造成部分手机白屏
- 笔记二:计数排序、选择排序、冒泡排序、插入排序
- 第5周 经典小游戏程序 打飞机
- inf文件的编写
- UVA_11292_Dragon of Loowater