linux c之gdb常用断点调试总结
来源:互联网 发布:淘宝卖家怎么设置特价 编辑:程序博客网 时间:2024/04/28 22:23
1 、安装GDB
sudo apt-get install gdb
2 、怎么打断点
1 、源文件的某一行设置断点
break 行号
2、一个特定的函数设置断点
break 函数名
3、设置条件断点
break 行号 if 条件
3、举例分析
hello2.c源文件如下
#include<stdio.h>int main() { int a = 1, b = 2, c = 3; int i; printf("hello chenyu"); for (i = 0 ; i < 100; i++) { ++a; if (i > 90) { ++b; } else { ++c; } } printf("a = %d, b = %d, c = %d", a, b, c); int cc = 0; for (cc; cc < 9; cc++) { printf("c %d", i); } return 0;}
比如我们在 ++b (第10行)这行和printf("c %d", i)(第18行)这两行打断点命名如下
1、编译
gcc -g hello2.c
2、gdb调试
gdb hello2
3、显示代码行数命令如下
list3次回车
4 、然后输入下面打断点命令
break 10break 18
图片如下:
5 、 运行并且跳转到断点
1、运行
start
2 、跳转到断点命令(countine 简写c)
c
程序就到到++b 这行来,上面2个步骤也可以用这个run (简写 r)命令代码
r
我们这里代码会跳到这个断点里面来,我么就避免了手动循环这么多次,因为这个断点会打很多次,所以我们可以用c命令,还是会在这行,所以打断点一般不要打在循环里面,当这个代码执行完之后,我们再用c命令,就会打印18行的代码
我们也可以用watch命令来观察变量,如果变量的值发生变化,程序就会停止
watch b
我么看变量的值或则单个变量的值可以用下面命令
i localsp c
进入函数内部用下面命令
s
单步调试往下执行用下面命令
n
删除断点
delete 行号
退出gdb命令
quit
4、如何保存断点
有时候运行时,上次打的断点没了,怎么保存呢?
1、查看断点信息并保存
info b
2 、保存断点
save breakpoint fig.dp
断点保存在fig.dp文件里面
3、调试时候读取保存断点文件
gdb hello2 -x fig.dp
要记住加上参数 -x
然后再去查看是否有断点
info b
可以看到是有2个断点的
5、总结
学会了gdb打断点的基本命令,还有一些调试手段,以及断点的保存。
0 0
- linux c之gdb常用断点调试总结
- gdb调试之断点篇
- linux C编程之二[GDB调试]
- linux下c编程之gdb调试
- iOS开发之Xcode常用调试技巧总结 断点高级
- GDB调试器的总结(调试linux c)
- gdb调试C语言--单步调试、断点调试
- gdb调试C语言--单步调试、断点调试
- gdb常用调试命令总结
- Linux之gdb调试
- linux 下C/C++程序常用调试方法(gdb)
- Linux启动gdb调试模式二——断点调试
- linux之gdb调试常用100个技巧
- Linux使用GDB调试总结
- linux之gdb基本调试命令和使用总结
- gdb 调试linux c程序
- linux C 调试工具gdb
- C/C++ 之 gdb 调试
- Leetcode刷题记—— 35. Search Insert Position(查找插入位置)
- 数据结构课程设计--考试报名管理
- Error: Error parsing D:\android-sdk-windows\sdk\system-images\android-22\android-wear\x86\devices.xm
- 抽象工厂模式(设计模式_17)
- ubuntu ftp 服务器搭建及vsftpd.conf配置实例详解
- linux c之gdb常用断点调试总结
- The Knowledge of Linux-.-Day01
- 2017年值得一看的设计趋势(一)
- (2)Javascript之函数的多种调用方式
- 腻害了!我的console.log
- 三大特性之多态
- 【JDBC4.2】三、Statements
- 【C语言常识】原子性问题一
- 线程池ThreadPoolExecutor使用简介