linux下的工具---gdb
一、gdb简介
GDB,是The GNU Project Debugger 的缩写,是 Linux 下功能全面的调试工具。 GDB支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。
程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项
二、gdb基础命令操作
1、进入gdb :gdb +可执行程序名
2、退出gdb:ctrl + d 或 quit 调试命令
3、显示代码:l

输入list可显示代码,简写为l,不会一次显示全部代码。
由于gdb会记录历史命令即最近一条命令,如果命令无变化可以回车继续执行该命令。
4、开始调试:r
r :开始调试,若没有断点,则直接结束

5、打断点:b 行号

6、显示断点信息:info b

7、删断点:d 编号
由于打断点时系统会给断点编号,删除时用不得行号,可用编号进行删除。

8、逐过程:n
(gdb) n
7 for(i = 0;i <= 100;i++)
(gdb) n
9 res+=i;
9、逐语句:s
(gdb) s
7 for(i = 0;i <= 100;i++)
10、直接跑完当前函数并停下:finish
(gdb) finish
Run till exit from #0 AddToTop (top=100) at mytest.c:7
0x0000000000400579 in main () at mytest.c:18
18 int result = AddToTop(top);
Value returned is $1 = 5050
(gdb) bt
#0 0x0000000000400579 in main () at mytest.c:18
11、进入堆栈:bt
(gdb) bt
#0 AddToTop (top=100) at mytest.c:7
#1 0x0000000000400579 in main () at mytest.c:18
12、常显示:dispaly 变量名
(gdb) display res
1: res = 0
(gdb) n
7 for(i = 0;i <= 100;i++)
1: res = 0
(gdb) n
9 res+=i;
1: res = 0
(gdb) n
7 for(i = 0;i <= 100;i++)
1: res = 0
(gdb) n
9 res+=i;
1: res = 0
(gdb) n
7 for(i = 0;i <= 100;i++)
1: res = 1
(gdb) n
9 res+=i;
1: res = 1
13、取消常显示:undisplay 编号
(gdb) undisplay 1
(gdb) n
7 for(i = 0;i <= 100;i++)
14、跳转到指定行:until 指定行
(gdb) until 18
0x0000000000400579 in main () at mytest.c:18
18 int result = AddToTop(top);
15、运行至下一个断点处停下:c
(gdb) c
Continuing.
result:5050
[Inferior 1 (process 18009) exited normally]
16、禁用断点:disable 编号
(gdb) disable 1
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep n 0x000000000040053b in AddToTop at mytest.c:6breakpoint already hit 1 time
注意看,断点1的End变成了n,表示被禁用
17、取消禁用:enable 编号
(gdb) enable 1
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040053b in AddToTop at mytest.c:6breakpoint already hit 1 time
相关文章:
linux下的工具---gdb
一、gdb简介 GDB,是The GNU Project Debugger 的缩写,是 Linux 下功能全面的调试工具。 GDB支持断点、单步执行、打印变量、观察变量、查看寄存器、查看堆栈等调试手段。 程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序&am…...
ESP32-Web-Server编程-JS 基础 2
ESP32-Web-Server编程-JS 基础 2 概述 上节介绍了 JS 编程的基础。如前所述,在 HTML 中,可以通过下述 两种方式使用 JS 程序: 直接在 HTML 文件中通过 script 标签中嵌入 JavaScript 代码。通过 src 元素引入外部的 JavaScript 文件。 在…...
Java Web基础教程
Java Web基础教程 1. Servlet基础 1.1 什么是Servlet Servlet是JavaEE中的标准组件之一,专门用于处理客户端的HTTP请求。并且它必须依赖于Servlet容器(Tomcat就是一个标准的Servlet容器)才能运行。因为Servlet实例的创建和销毁都是由容器负…...
BUUCTF john-in-the-middle 1
BUUCTF:https://buuoj.cn/challenges 题目描述: 注意:得到的 flag 请包上 flag{} 提交 密文: 下载附件,解压得到john-in-the-middle.pcap文件。 解题思路: 1、双击文件,打开wireshark。 看到很多http流…...
HashMap的死循环及数据覆盖问题
目录 一,HashMap 线程不安全的原因 二,HashMap 死循环问题 死循环发生的条件 死循环的具体过程 死循环执行步骤1 死循环执行步骤2 死循环执行步骤3 三,HashMap 数据覆盖问题 数据覆盖执行流程1 数据覆盖执行流程2 数据覆盖执行流…...
数据库数据恢复—MongoDB数据库文件拷贝出现错误的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统的虚拟机,虚拟机上部署有MongoDB数据库。 MongoDB数据库故障&检测: 在未关闭MongoDB服务的情况下,工作人员将MongoDB数据库文件拷贝到其他分区,然后将原数…...
2023年11月个人工作生活总结
本文为 2023 年 11 月工作生活总结。 研发编码 GIS 模仿了一些有名的地图服务商的网站,将离线地图页面做成全屏,对于大屏幕更加好友。再美化一下全区的边界和区内地域的边界。不过主要工作量还是绘制路线,而绘线作为内部工作,还…...
Spark-06:Spark 共享变量
目录 1.广播变量(broadcast variables) 2.累加器(accumulators) 在分布式计算中,当在集群的多个节点上并行运行函数时,默认情况下,每个任务都会获得函数中使用到的变量的一个副本。如果变量很…...
Spring整合web环境
目录 Javaweb三大组件及环境特点 Spring整合web环境的思路及实现 Spring的web开发组件spring-web MVC框架思想及其设计思路 Javaweb三大组件及环境特点 Spring整合web环境的思路及实现 package com.xfy.listener;import com.xfy.config.SpringConfig; import org.springfra…...
分享从零开始学习网络设备配置--任务4.3 使用动态路由RIPng实现网络连通
任务描述 某公司使用IPv6技术搭建企业网络,由于静态路由需要管理员手工配置,在网络拓扑发生变化时,也不会自动生成新的路由,因此采用IPv6动态路由协议RIPng实现网络连通,实现任意两个节点之间的通信,并降低…...
vue2.0+elementui集成file-loader之后图标失效问题
背景 跑vue2elementUI项目时,由于前端这边需要在本地存放xlsx模板文件,供用户下载模板文件,所以需要在webpack构建的时候增加file-loader进行解析xlsx文件打包。 vue版本2.x element-ui 版本 2.13.x 注意 npm i -D file-loader版本号给vue项…...
C# 文件帮助类(FileHelper)
引言 在研究程序反射的时候我们往往需要获取当前运行程序所引用的dll文件,按照传统的方式我们可以维护一个这样的列表,但是这样维护成本实在是太高,而且不利于团队合作开发,在高版本的.net 4.6.2之后官方出了专门的dll帮我们做这个事情Microsoft.Extensions.DependencyMod…...
WordPress 外链跳转插件
WordPress 外链跳转插件是本站开发的一款WordPress插件,能对文中外链添加一层过滤,有效防止追踪,以及提醒用户。 类似于知乎、CSDN打开其他链接的提示。 后台可以设置白名单 学习资料源代码:百度网盘 密码:123...
算法的10大排序
10大排序算法--python 一颗星--选择排序一颗星--冒泡排序一颗星--插入排序两颗星--归并排序(递归-难)三颗星--桶排序三颗星--计数排序四颗星--基数排序四颗星--快速排序,寻找标志位(递归-难)四颗星--又是比较难的希尔排…...
“十道机器学习问题,帮助你了解基础知识和常见算法“
目录 简介: 1. 什么是机器学习?它与传统编程有什么不同之处?2. 请解释监督学习和无监督学习的区别。3. 什么是过拟合和欠拟合?如何解决这些问题?4. 请解释交叉验证在机器学习中的作用。5. 什么是特征选择?为…...
部署WAF安全应用防火墙(openresty部署)
使用NGINX+Openresty实现WAF功能 一、了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保…...
yml转properties工具
目前搜索到的大部分代码都存在以下问题: 复杂结构解析丢失解析后顺序错乱 所以自己写了一个,经过不充分测试,基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外,还可以生成代码、sql转json等,可…...
zerotier 搭建 moon中转服务器 及 自建planet
搭建moon 服务器 环境准备 # 安装依赖 yum install wget gcc gcc-c git -y yum install json-devel -y# 下载及安装 curl -s https://install.zerotier.com/ | sudo bash节点ID 配置 配置moon.json文件 cd /var/lib/zerotier-one/# 导出依赖 zerotier-idtool initmoon ide…...
深入了解Rabbit加密技术:原理、实现与应用
一、引言 在信息时代,数据安全愈发受到重视,加密技术作为保障信息安全的核心手段,得到了广泛的研究与应用。Rabbit加密技术作为一种新型加密方法,具有较高的安全性和便捷性。本文将对Rabbit加密技术进行深入探讨,分析…...
Linux常用命令——mv命令
文章目录 1. 简介2. 命令格式3. 主要参数4. 常见用法及示例4.1 移动文件4.2 重命名文件4.3 交互式移动文件4.4 强制移动文件4.5 移动多个文件4.6 使用通配符移动文件 5. 注意事项6. 结论 1. 简介 mv 命令在Linux系统中用于移动文件或目录,同时也可以用于重命名文件…...
企业内如何规范 API Key 使用并实现访问控制与审计
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内如何规范 API Key 使用并实现访问控制与审计 在中大型企业或技术部门内部,大模型 API 的引入往往伴随着新的管理…...
将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量 当企业内部多个业务线或团队开始独立探索和应用大模型能力时&#…...
【Appium 系列】第20节-测试项目结构设计 — 从脚本到工程
对应代码:配套代码/test/ 完整目录结构说明:本节讲解如何组织一个中大型 Appium 测试项目,从目录结构到文件职责,从脚本到工程的演进。这节讲什么测试项目从小到大会经历三个阶段:阶段 1:脚本阶段test_logi…...
避坑指南:S32K3 AUTOSAR环境安装后,如何验证MCAL配置与工程创建?
S32K3 AUTOSAR开发实战:从环境验收到MCAL配置全流程解析 当S32DS、EB tresos和RTD驱动安装完成后,许多开发者会陷入"工具链已就位,但不知从何入手"的困境。本文将带您跨越从环境安装到可编译工程的关键步骤,重点解决三个…...
如何快速上手res-downloader:跨平台资源下载工具终极指南
如何快速上手res-downloader:跨平台资源下载工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 想要轻松…...
学术赋能国际交流 实干彰显时代担当——刘庆武受聘泰国清迈西北大学国际金融类博士生导师
(泰国讯)近日,第二届文化出海・泰国高校学术访问活动在泰国南邦国际科技学院多媒体会议室隆重举行。本次中泰跨境学术文化交流活动规格高、覆盖面广,汇聚两国学界、商界、侨界优质资源。南邦国际科技学院代理校长普・西素、副校长…...
心理学论文降AI工具免费推荐:2026年心理学毕业论文知网维普降AI4.8元亲测完整方案
心理学论文降AI工具免费推荐:2026年心理学毕业论文知网维普降AI4.8元亲测完整方案 答辩前夕,AI率36%,学校要求15%以下。 用嘎嘎降AI(www.aigcleaner.com),4.8元,两小时搞定,一次过…...
别再硬扛了!书匠策AI把毕业论文拆成了“填空题“,2025届必看科普
各位被毕业论文逼到怀疑人生的朋友们,今天这期内容,我想用一种你从没听过的方式,给你拆解一个工具——书匠策AI( 官网直达:www.shujiangce.com微信搜一搜"书匠策AI"可关注公众号)。 先抛一个扎心…...
突破距离限制,抗扰稳连|三格电子 Profibus-DP 转光纤模块,工业通信优选
在冶金、矿山、化工、大型制造等工业场景中,Profibus-DP 总线常面临传输距离不足、电磁干扰强、信号易中断三大难题,严重影响生产设备联动与数据传输稳定性。三格电子MS-F155-P (Y) Profibus-DP 转光纤点对点模块,专为解决工业长距离、强干扰…...
Python字节码反编译技术深度解析:pycdc项目的架构实现与实战应用
Python字节码反编译技术深度解析:pycdc项目的架构实现与实战应用 【免费下载链接】pycdc C python bytecode disassembler and decompiler 项目地址: https://gitcode.com/GitHub_Trending/py/pycdc 在Python生态系统中,字节码反编译技术一直是系…...
