gdp调试—Linux

目录

介绍

使用


介绍

代码分为debug模式和release模式

如果一份代码要被调试,这份代码必须是debug

Linux下编译代码默认是是release模式

如果你想代码是debug模式

必须加上   - g

小提:

vim默认:命令模式

gcc默认:release模式

Linux中形成的可执行程序格式:ELF

在debug发布时,一定会给可执行程序内部添加debug信息

debug形成的可执行程序   >    release形成的可执行程序

使用

gdp + 可执行程序

1.打开代码

l (list)

l 0 从0行开始打开代码

2.运行

r  (run)

3.打断点

b  (breakpoint)   +  行号

b  源文件:行号

b  函数   (打在函数入口处)

b  文件名    函数或者行号

4.查看断点

info  b

每个断点都有编号

5.删除断点

d(deletepoint)+ num(断点编号)

6.禁用和开启断点

disable   +  Num   禁用断点

enable    +  Num   开启断点

7.逐过程(把函数当成一条语句)

n

8.逐语句

s

9.查看变量细节

display   +变量/变量地址(常显示)

undisplay  +变量/变量地址(关闭常显示)

10.查看变量细节

p  +变量/变量地址

11.运行

until   运行到指定位置

finish   运行到当前函数结尾

c   从一个断点运行到另一个断点

12.查看调用堆栈

bt

13.更改变量的值

set   var   i(变量)= ?

14.查看所有变量

info locals

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

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

相关文章

操作系统--进程、线程基础知识

一、进程 我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当我们运行这个可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,那么这个运行中的程序,就…

ModelArts加速识别,助力新零售电商业务功能的实现

前言 如果说为客户提供最好的商品是产品眼中零售的本质,那么用户的思维是什么呢? 在用户眼中,极致的服务体验与优质的商品同等重要。 企业想要满足上面两项服务,关键在于提升效率,也就是需要有更高效率的零售&#…

C++ //练习 3.8 分别用while循环和传统的for循环重写第一题的程序,你觉得哪种形式更好呢?为什么?

C Primer(第5版) 练习 3.8 练习 3.8 分别用while循环和传统的for循环重写第一题的程序,你觉得哪种形式更好呢?为什么? 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /********…

【三】【C++】类与对象(二)

类的六个默认成员函数 在C中,有六个默认成员函数,它们是编译器在需要的情况下自动生成的成员函数,如果你不显式地定义它们,编译器会自动提供默认实现。这些默认成员函数包括: 默认构造函数 (Default Constructor)&…

C++ 数论相关题目 博弈论:拆分-Nim游戏

给定 n 堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆规模更小的石子(新堆规模可以为 0 ,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失…

PMP中的数据收集工具:打开项目成功的钥匙

在项目管理中,数据收集是关键的一环。准确、及时的数据能够为项目决策提供可靠的依据,帮助项目经理更好地监控项目进展、识别潜在风险,并制定有效的应对措施。本文将深入探讨PMP(项目管理专业)中常用的数据收集工具&am…

二层环路和三层环路

环路的原因:二层环路是由于物理拓扑出现环路,如3台交换机3角形连接。 三层环路一般物理拓扑有环路,并且设备之间路由表形成互指。(物理拓扑不成环,2台设备使用静态路由互指也可能成环,这种特殊情况除外)。 二层设备和三…

力扣题目训练(6)

2024年1月30日力扣题目训练 2024年1月30日力扣题目训练367. 有效的完全平方数374. 猜数字大小383. 赎金信99. 恢复二叉搜索树105. 从前序与中序遍历序列构造二叉树51. N 皇后 2024年1月30日力扣题目训练 2024年1月30日第六天编程训练,今天主要是进行一些题训练&…

I2C 设备驱动

V5.10 参考文档:Documentation/i2c/writing-clients.rst static struct i2c_device_id foo_idtable[] {{ "foo", my_id_for_foo },{ "bar", my_id_for_bar },{ }};MODULE_DEVICE_TABLE(i2c, foo_idtable);static struct i2c_driver foo_drive…

在ubuntu上在安装Squid代理服务器

Squid 是一个代理和缓存服务器,它将请求转发到所需的目的地,同时保存请求的内容,当你再次请求相同内容时,他可以向你提供缓冲内容,从而提高访问速度。Squid代理服务器目前支持的协议有:http、SSL、DNS、FTP…

App测试中ios和Android有哪些区别呢?

App测试中,大家最常问到的问题就是:ios和 Android有什么区别呢? 在Android端,我们经常会使用 JavaScript、 HTML、 CSS等技术来编写一些简单的 UI界面。而 iOS端,我们经常会使用到 UI设计、界面布局、代码结构、 API等…

C++——特殊类

特殊类 文章目录 特殊类一、请设计一个类,不能被拷贝二、请设计一个类,只能在堆上创建对象方案一:析构函数私有化方案二:构造函数私有化 三、请设计一个类,只能在栈上创建对象四、请设计一个类,不能被继承五…

Linux系统MySQL重置root密码

MySQL是一种开源的关系型数据库管理系统,广泛用于Web应用程序的后台数据存储。在MySQL中,root是默认的超级用户,具有最高权限。然而,有时候我们可能会遇到忘记root密码的情况,或者需要重置root密码以增加数据库的安全性…

微软Office Plus与WPS Office的较量:办公软件市场将迎来巨变?

微软Office Plus在功能表现上远超WPS Office? 微软出品的Office套件实力强劲,其不仅在办公场景中扮演着不可或缺的角色,为用户带来高效便捷的体验,而且在娱乐生活管理等多元领域中同样展现出了卓越的应用价值 作为中国本土办公软…

Flyway数据库迁移工具入门教程

前言 在现代应用程序开发中,数据库架构的管理和版本控制是一个至关重要的环节。Flyway是一款流行的开源数据库迁移工具,它为开发者提供了一种简单、可预测的方式来管理数据库变更,确保数据库架构与应用代码同步更新。本文将引导您快速入门Fl…

Leetcode 第 381 场周赛题解

Leetcode 第 381 场周赛题解 Leetcode 第 381 场周赛题解题目1:3014. 输入单词需要的最少按键次数 I思路代码复杂度分析 题目2:3015. 按距离统计房屋对数目 I思路代码复杂度分析 题目3:3016. 输入单词需要的最少按键次数 II思路代码复杂度分析…

HarmonyOS使用Web组件加载页面

1、加载网络页面 在Web组件创建时,指定默认加载的网络页面 。在默认页面加载完成后,如果开发者需要变更此Web组件显示的网络页面,可以通过调用loadUrl()接口加载指定的网页。 默认在Web组件加载完“www.baidu.com”页面后,点击按…

孩子叛逆怎么办?

孩子叛逆是一个常见的问题,但是家长和监护人可以通过以下方法来处理这个问题: 沟通和理解:与孩子保持良好的沟通,了解他们的想法和感受,是解决孩子叛逆问题的关键。家长和监护人需要耐心倾听孩子的意见和想法&#xf…

html+js+css静态故宫主题

登录代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>登录 - 故宫博物院</title><…

C语言菜鸟入门·函数

目录 1. 函数的定义 2. 函数声明 3. 函数调用 4. 函数参数 4.1 传值调用 4.2 引用调用 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同…