gbd的简单使用(一)
这篇文章将gdb的简单使用,通过此篇文章你能学习到使用gdb进行调试程序
在Linux中编写程序时,如何进行程序的debug工作呢?今天来介绍下gdb这个工具,可以在Linux下直接man gdb查看帮助信息
(一)gdb命令介绍
常用命令:
命令 | 命令缩写 | 命令说明 |
---|---|---|
run | r | 开始运行程序,在第一个断点处停住 |
start | st | 启动调试,在main函数中第一条语句停住 |
next | n | 执行下一行,不会进入函数内部 |
step | s | 执行下一条语句,会进入函数 |
display | disp | 查看某个变量,每次停下来都会显示它的值 |
info | i | 查看程序信息 |
break | b | 设置断点 |
p | 打印变量值 | |
continue | c | 继续运行程序 |
set var name=value | 设置变量的值 | |
list | l | 显示程序源码,默认显示10行 |
kill | k | 终止程序调试 |
watch | 监视变量值的变化 | |
breaktrace | bt | 查看函数调用信息 |
quit | q | 退出gdb环境 |
基础操作:
(1)编译调试程序 :gcc -g xxx.c -o xxx
(2)进入gdb环境 : gdb xxx
(3)根据需求执行上面的命令
(4) 退出gdb
(二)实例运行
test.c
#include <stdio.h>int main(int argc, char *argv[])
{int a=0,b=0,c=0;a=1;b=2;c=a+b;printf("a=%d,b=%d,c=%d\n",a,b,c);return 0;
}
zhixia# gcc -g test.c -o test
zhixia# gdb test
通过上面的操作已经进入了gdb环境了
输入list查看代码:从上次位置开始显示,默认一次显示10行
(gdb) list
1 #include <stdio.h>
2
3 int main(int argc, char *argv[])
4 {
5 int a=0,b=0,c=0;
6 a=1;
7 b=2;
8 c=a+b;
9 printf("a=%d,b=%d,c=%d\n",a,b,c);
10 return 0;
(gdb)
设置断点:执行到此位置会停下来
break line/function/
查看断点信息 : info b
删除断点:delete breakpoints 断点号
使能断点: enable 断点编号
失能断点: disable 断点编号
(gdb) break 7
Breakpoint 1 at 0x400551: file test.c, line 7. //断点编号是1
(gdb) r
Starting program: /root/test/test Breakpoint 1, main (argc=1, argv=0x7fffffffdf78) at test.c:7
7 b=2;
显示变量值:display
(gdb) display a
1: a = 1
(gdb)
单步调试命令:next/step
step n,next n 表示连续单步执行n条指令,如果期间遇到断点,则停下来
(gdb) next
8 c=a+b;
1: a = 1
(gdb) step
9 printf("a=%d,b=%d,c=%d\n",a,b,c);
1: a = 1
(gdb)
打印变量信息print
(gdb) p a
$1 = 1
(gdb)
set var name=value
在程序运行中动态改变变量的值
(gdb) set var a=4
(gdb) p a
$2 = 4
(gdb)
gbd的简单使用(一)相关推荐
- 在docker上安装部署tomcat项目 超简单,拿来主义
在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...
- Linux下tomcat的安装与卸载以及配置(超简单)
无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...
- Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务--httpd helloworld目录[阅读时间:约5分钟] 一.Docker简介 二.Docker的安装与配置[CentOS环境] 三.Docker运行简单的web ...
- Docker的安装、镜像源更换与简单应用
Docker的安装.镜像源更换与简单应用[阅读时间:约20分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.Docker的安装 四.Docker的简单应用 1. ...
- 基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发--CloudGo[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 (1)基本要求 (2)扩展要求 三.具体 ...
- 简单图文配置golang+vscode【win10/centos7+golang helloworld+解决install failed等情况】
博客目录(阅读时间:10分钟) 一.win10 0.系统环境 1. win10配置golang环境 ①下载相关软件 ②创建gowork工作空间 ③配置环境变量(GOPATH+PATH) ④验证环境配置 ...
- 简单介绍互联网领域选择与营销方法
在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...
- JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...
- java发送简单邮件_Java程序实现发送简单文本邮件
/** * Java程序实现发送简单文本邮件 * * @author Administrator * */ public class SendTextMail { // 定义发件人地址 public ...
- 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/
大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...
最新文章
- Nexus.js介绍:一个多线程的JavaScript运行库
- C语言检查列表是否是回文的算法(附完整源码)
- 又重装了系统win8+office2013+sql2012+tfs2012+vs2010+vs2012+xna4+kinectsdk1.6+wp8sdk
- M1 mac 使用docker 安装mysql
- 下半年值得关注的新机和科技趋势
- macOS Recovery中修复磁盘的具体操作方法
- 使用vue搭建项目(创建手脚架)
- 举例说明计算机网络协议,第二章计算机网络协议与体系结构.ppt
- 阿尼亚二次元动漫鼠标指针最新教程+素材打包
- python全栈工程师培训_2018.03《Python3全栈工程师》_技术能力内训
- realsense相机色彩图与深度图对齐
- 用Python教你画一棵绝美碎花树~学会就能送给喜欢的人啦
- Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法
- OpenCV图象孔洞内轮廓填充
- 在Ubuntu 18.04上安装man中文帮助手册的方法手记
- PHPMyWind编辑器支持PowerPoint导入
- SEO技术是一个很好的方式来分享和做SEO代码。分享一下keysioncms的调用代码。
- 水星路由器wan口ip显示0_wan口状态ip地址为0.0.0.0
- 专升本第四讲(计算机的“灵魂”)
- about Netdarw