1-2 编程基础 GDB程序调试
简介
GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:
1.启动被调试程序
2.让被调试的程序在指定的位置停住。
3.当程序被停住时,可以检查程序状态(如变量值)。
GDB快速进阶
1.编译生成可执行文件:
gcc -g tst.c -o tst
2.启动GDB
gdb tst
3.在main函数处设置断点
break main
4.运行程序
run
5.单步运行
next
6.继续运行
continue (连续运行 输入 c)
启动GDB
1.gdb 调试程序名
例: gdb helloworld
2.gdb
file 调试程序名
GDB命令
list(1) 查看程序
break(b) 函数名 在某函数入口处添加断点
break(b) 行号 在指定行添加断点
break(b) 文件名:行号 在指定文件的指定行添加断点
break(b) 行号 if条件 当调价为真时,执行那个行号处断点生效,例b 5 if i=10,当i等于10时第5行断点生效
info break 查看所有设置的断点
delete 断点编号 删除断点
run(r) 开始运行程序
next(n) 单步运行程序(不进入子函数)
next(n) 单步运行程序(进入子函数)
continue(c) 继续运行程序
print 变量名 查看指定变量值
finish 运行程序,直到当前函数结束
watch 变量名 对指定变量进行监控
quit 退出gdb
1-2 编程基础 GDB程序调试的更多相关文章
- 1、GDB程序调试
GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具.一般来说GDB主要完成下面四个部分的功能. 1)启动你的程序,可以按照你的自定义的要求运行程序. 2)可让被调试程序在你所指定的调试的 ...
- Linux gcc和gdb程序调试用法 {转}
gcc一般调试格式: gcc -Wall -o test test.c // -wall 显示程序错误详细信息 gcc -v // 显示gcc的版本 gcc -o{1,2,3} t ...
- Linux编程基础——GDB(设置断点)(转:TianFang,cnblog: http://www.cnblogs.com/TianFang/archive/2013/01/20/2868889.html)
启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...
- Linux编程基础——GDB(设置断点)
启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...
- GDB 程序调试简单实践
用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是非常大,一般有错,直接看编译器编译结果就几乎相同知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows以下调 ...
- gdb,程序调试助手
启动GDB:(其中我的app是编译之后的可执行文件) 退出命令:quit或者简写q 帮助获取: gdb通过完备的在线帮助,使我们使用起来更加方便.所有的帮助信息都是通过help命令获得的,运行help ...
- 【Linux】GDB程序调试
一.GDB简介 GDB是GNU发布的一款功能强大的程序调试工具.GDB主要完成下面三个方面的功能: 启动被调试程序. 让被调试的程序在指定的位置停住. 当程序被停住时,可以检查程序状态(如变量值) 二 ...
- 1-1 编程基础 GCC程序编译
GCC简介 Linux系统下的gcc是GNU推出的强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平局效率要高20 ...
- GDB程序调试
GDB使用流程 1.编译生成可执行文件: gcc -g tst.c -o tst2.启动GDB gdb tst3. 在main 函数处设置断点 break main4. 运行程序 run GDB 命令 ...
随机推荐
- wsdl 生成代码 WCF
具体方法: 打开Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studio 2008 命令提示窗口. 输入:wsdl ...
- 基于 Laravel 5 构建的、支持模块化和多语言的 CMS —— AsgardCMS
1.简介 AsgardCMS 是基于 Laravel 5 构建的.支持模块化和多语言的CMS. 官网:https://asgardcms.com/ Github:https://github.com/ ...
- JNI(Java Native Interface)
一.JNI(Java Native Interface) 1.什么是JNI: JNI(Java Native Interface):java本地开发接口 ...
- vue 使用font-awesome 只需两步
npm 安装font-awesome 以及需要的所有依赖 cnpm install less less-loader css-loader style-loader file-loader font- ...
- 树莓派Dietpi系统配置Dueros
dietpi 系统安装alsa工具 安装依赖 sudo apt-get install python-dateutil sudo apt-get install gir1.2-gstreamer- ...
- (水题)洛谷 - P1093 - 奖学金
https://www.luogu.org/problemnew/show/P1093 #include<bits/stdc++.h> using namespace std; #defi ...
- 洛谷P2564 [SCOI2009]生日礼物(单调队列)
传送门 准确的来说这个应该叫尺取法? 先对所有的点按$x$坐标进行排序 我们维护两个指针$l,r$,每一次令$r$不断右移直到所有颜色齐全,再不断右移$l$直到颜色数不足,那么此时$[l-1,r]$这 ...
- IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术简介
Cookie的英文原意是“点心”,它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器送给客户的“点心”.服务器可以根据Cookie来跟踪客户状态,这对于需要区别客户的场合(如 ...
- 51Nod 1649 齐头并进
#include <iostream> #include <algorithm> #include <cstring> //两遍迪杰斯特拉 #define INF ...
- docker监控系统
第一:docker监控系统之命令行式监控 第二:docker监控系统之cadvisor 第三:docker监控系统之 第四:docker监控系统之