linux中的gdb调试

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.hqwc.cn/news/454133.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

群晖NAS开启FTP服务结合内网穿透实现公网远程访问本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. 群晖安装Cpolar2. 创建FTP公网地址3. 开启群晖FTP服务4. 群晖FTP远程连接5. 固定FTP公网地址6. 固定FTP…

【C语言】static关键字的使用

目录 一、静态本地变量 1.1 静态本地变量的定义 1.2 静态本地变量和非静态本地变量的区别 二、静态函数 2.1 静态函数的定义 2.2 静态函数与非静态函数的区别 三、静态全局变量 3.1 静态全局变量的定义 3.2 静态全局变量和非静态全局变量的区别 四、静态结构体变量 …

数据库管理phpmyadmin

子任务1-PHPmyadmin软件的使用 本子任务讲解phpmyadmin的介绍和使用操作。 训练目标 1、掌握PHPmyadmin软件的使用方法。 步骤1 phpMyAdmin 介绍 phpmyadmin是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库。通过phpMyAdmin可以完全对数据库进行…

使用pandas将excel转成json格式

1.Excel数据 2.我们想要的JSON格式 {"0": {"raw_data1": "Sam","raw_data2": "Wong","raw_data3": "Good","layer": "12v1"},"1": {"raw_data1": "Lucy…

渗透测试练习题解析 2(CTF web)

题目均来自 BUUCTF 1、[极客大挑战 2019]Upload 1 考点:文件上传漏洞 进入靶场 一看就知道是考察文件上传漏洞,看源码有没有敏感信息 没有什么敏感信息,那我们试着按要求传一张图片看看结果,但是传了 png、jpg 类型的图片后发现上…

Dijkstra算法(求最短路)

简介: 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。 特点: 迪杰斯特拉算法采用的是一种贪心策略&a…

深度神经网络中的BNN和DNN:基于存内计算的原理、实现与能量效率

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言引言内存计算体系结构深度神经网络(DNN)随机梯度的优…

kvm qemu 优化 windows 虚拟机速度

主要优化磁盘 io 和网络 io 都选为 virtio windows 驱动下载 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.185-2/virtio-win-0.1.185.iso I also had incredibly slow performance with my virtual HDD. The followin…

IP地址信息在保险行业的创新应用与解决方案

随着数字化时代的来临,保险行业正积极探索新的技术手段,以提升服务效能、降低风险,并更好地满足客户需求。IP地址信息作为一种重要的数字化工具,在保险行业中展现了广泛的应用前景。IP数据云将深入探讨IP地址信息在保险行业中的创…

C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现

前言 我们开发的tcp客户端程序在连接服务器以后,经常会遇到服务器已经关闭但是作为客户端的我们不知道,这时候应该应该有一个机制我们可以实时监测客户端和服务器已经断开连接,如果已经断开了连接,我们应该及时报警提示用户客户端和服务器已经断开连接,本文介绍三种可以监…

VM安装Centos7

目标: 一,安装Centos7 二,ssh可以连接 1 新建虚拟机 一直下一步 2 直到此处,选择稍后安装 一直下一步直到完成。 3 选中虚拟机,点击设置 选择CD/DVD,选取ISO映像文件。 4 等待安装 并且设置root密码 5…

R语言:箱线图绘制(添加平均值趋势线)

箱线图绘制 1. 写在前面2.箱线图绘制2.1 相关R包导入2.2 数据导入及格式转换2.3 ggplot绘图 1. 写在前面 今天有时间把之前使用过的一些代码和大家分享,其中箱线图绘制我认为是非常有用的一个部分。之前我是比较喜欢使用origin进行绘图,但是绘制的图不太…