linux中的gdb调试

news2024/10/5 14:33:42

gdb是在程序运行的结果与预期不符合时,可以使用gdb进行调试

注意:使用gdb调试时要在编译上加-g参数

gcc -g -c hello.c

启动gdb调试:

gdb file   对gdb进行调试

设置运行参数:

set args   可指定运行参数

show args 可以查看设置好的运行参数。

启动程序:

run:程序开始执行,如果有断点,停在第一个断点处。

start:程序开始向下执行下一行(在第一条语句停止)

显示源代码:
 list显示的是源代码

list - 回到当前文件开头

list line :打印源代码第line行的上下文内容

list  func:打印源代码中func函数的内容

list file:1   打印file文件第一行的上下文内容

list file:func  打印file文件func函数的内容

当前文件已经是add.c:

一般来说:

打印当前行的上五行,下五行,显示函数则是上两行,下八行。默认是十行。

我们也可以自行更改:

set listsize count :设置一次显示源代码的行数

show listsize: 查看listsize的设置

断点操作:

b line 在第line行设置断点

b func  在func函数处设置断点

b file:line

b file:func

i b 查看断点信息

disable n 使n号断点无效

 enable m 使n号断点有效

delete n 删除n号断点

条件断点:

b file:8 if val== 5   在file文件第八行当val等于5时断点

调试代码:
 

next 单步跟踪,函数调用当作一条简单语句,不会进入函数体

step 单步跟踪,会进入函数体内

finish 退出进入的函数(退不出,删除函数内的断点)

until  在一个循环体单步跟踪时,这个命令可以运行程序直到退出循环体(退不出,删除循环内的断点)

continue 继续运行程序(若有断点跳到下一个断点) 

打印变量:

print count  打印count 的值

自动显示:

display 变量名

i display 显示自动显示变量的信息

disable display n 使n号变量无效

enable display n 使n号变量有效

删除自动显示:

undisplay 变量名  

delete display m

ptype 变量  查看变量的类型

退出gdb调试:

quit命令


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1437890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DC-9靶场渗透】

文章目录 前言 一、确定靶机地址 二、信息收集 三、寻找漏洞 四、进一步漏洞挖掘 五、关键文件 六、ssh爆破 七、提权 总结 前言 马上过年了,年前再做一下DC靶场最后一个靶机。 一、确定靶机地址 1、可使用arp-scan命令 靶机地址为:172.16.10…

编译原理与技术(三)——语法分析(六)自底向上-SLR分析

上一节介绍了LR分析,LR分析包含许多方法,本节介绍的简单的LR方法(SLR)就是其中之一。 一、活前缀 二、LR分析的特点 三、 简单的LR方法(SLR) (一)LR(0)项目 (二&#x…

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 ( 1 )合并数组 ( 2 )与解构赋值结合 ( 3 )函数的返回值 ( 4 )字符串 ( 5 )实现了 Iter…

3. 私服方面

目录 3.1 场景 3.2 介绍 3.3 资源上传与下载 3.3.1 步骤分析​编辑 3.3.2 具体操作 maven1:分模块设计开发 maven2:继承与聚合 3.私服 前面我们在讲解多模块开发的时候,我们讲到我们所拆分的模块是可以在同一个公司各个项目组之间进行…

关于PLC数据采集上报,系统平台对接、设备数据转发

设备数据采集上报与系统平台对接 相关案例 PLC与SQLServer,MySQL,PostgreSQL,Oracle数据库双向通讯;HTTP协议GET/POST/PUT请求上报,解析返回数据;MQTT协议JSON/XML文件格式发布/订阅;无需…

MyBatis:轻量级Java持久层框架初探

引言 在Java企业级应用开发领域,ORM框架无疑是构建高性能数据访问层的关键工具之一。MyBatis作为一款轻量级、易于学习且高度可定制化的持久层框架,以其简洁的设计理念、卓越的灵活性和高效的SQL处理能力,赢得了广大开发者的青睐。本文将系统…

肯尼斯·里科《C和指针》第12章 使用结构和指针(2)双链表

12.3 双链表 单链表的替代方案就是双链表。在一个双链表中,每个节点都包含两个指针——指向前一个节点的指针和指向后一个节点的指针。这可以使我们以任何方向遍历双链表,甚至可以随意在双链表中访问。下面的图展示了一个双链表。 下面是节点类型的声明&…

运维备忘录』之 TAR 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

go语言每日一练——链表篇(六)

传送门 牛客面试必刷101题—— 判断链表中是否有环 牛客面试必刷101题—— 链表中环的入口结点 题目及解析 题目一 代码 package mainimport . "nc_tools"/** type ListNode struct{* Val int* Next *ListNode* }*//**** param head ListNode类* return bool…

java日志框架总结(五、logback日志框架)

一、logback概述 Logback是由log4j创始人设计的又一个开源日志组件。 Logback当前分成三个模块: 1、logback-core, 2、logback- classic 3、logback-access。 1)logback-core是其它两个模块的基础模块。 2)logback-…

MySQL之建表操作

华子目录 表操作创建表数据类型文本类型数值类型日期/时间类型Bit数据类型常见数据类型 MySQL存储引擎创建表的三个操作创建表时指定存储引擎,字符集,校对规则,行格式 查看表显示数据库中所有表显示数据库中表的信息(表结构&#…

flutter监听app进入前后台状态的实现

在开发app的过程中,我们经常需要根据app的前后台的状态,做一些事情,那么我们在flutter中是如何实现这一监听的? flutter给我们提供了WidgetsBindingObserver来进行一些状态的判断,但是判断前后台的状态只是该API种其中…

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

C#中实现串口通讯(使用SerialPort类)

仅作自己学习使用 1 准备部份 需要两个调试软件commix和Virtual Serial Port Driver,分别用于监视串口和创造虚拟串口。 第一个软件是这样的: 资源在这里:免费下载:Commix 也可以前往官网下载:Bwsensing— Attitude…

苹果macbook电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法

苹果电脑删除数据恢复该怎么做?Mac电脑误删文件的恢复方法 如何在Mac上恢复误删除的文件?在日常使用Mac电脑时,无论是工作还是娱乐,我们都会创建和处理大量的文件。然而,有时候可能会不小心删除一些重要的文件&#x…

【GPT】一个高效使用excel获得结果的案例

问:请介绍通过规划求解,求出以最低成本购买固定数量礼品的方法。 ChatGPT: 通过规划求解方法,可以确定以最低成本购买固定数量礼品的方法。以下是使用规划求解进行最低成本购买礼品的一般步骤。 1.定义目标: 明确目标是以最低成本购买固定数量的礼品。…

哪个牌子的游泳耳机质量好又耐用?性价比高的游泳耳机品牌排行榜

如今,越来越多的人开始注重运动健身,并在运动时习惯享受音乐的陪伴。市场上的运动耳机种类繁多,以蓝牙耳机为主流。然而,在一些特定的运动项目,尤其是游泳,将手机放在附近并不方便。因此,如果在…

SpringMVC原理(设计原理+启动原理+工作原理)

文章目录 前言正文一、设计原理1.1 servlet生命周期简述1.2 设计原理小结 二、启动原理2.1 AbstractHandlerMethodMapping 初始化 --RequestMapping注解解析2.2 DispatcherServlet 的初始化2.3 DispatcherServlet#initHandlerMappings(...) 初始化示例说明 三、工作原理 前言 …

2023年12月CCF-GESP编程能力等级认证C++编程一级真题解析

一、单选题(共15题,共30分) 第1题 以下C++不可以作为变量的名称的是( )。 A:CCF GESP B:ccfGESP C:CCFgesp D:CCF_GESP 答案:A 第2题 C++表达式 10 - 3 * (2 + 1) % 10 的值是( )。 A:0 B:1 C:2 D:3 答案:B 第3题 假设现在是上午十点,求出N小时(正整数…

「 CISSP学习笔记 」08. 安全运营

该知识领域涉及如下考点,具体内容分布于如下各个子章节: 理解并遵守调查执行记录和监控活动执行配置管理 (CM)(例如,预配、基线、自动化)应用基本的安全操作概念应用资源保护执行事故管理执行和维护检测和预防措施实施…