gdb常用指令

文章目录

  • gdb常用指令
    • gdb启动
    • 断点
    • 函数调用栈
    • 打印
    • 单步执行
    • 结束函数
    • 观察点
    • 查看代码
    • 查看数组内容

gdb常用指令

gdb启动

gdb <app>
gdb
attach <pid>
gdb attach <pid>
gdb -p <pidof process>

断点

使用break或者b命令来设置断点

break <filename:linenumber> 在源文件的filename的linenumber处停住
break <funcName> 在函数funcName入口处停住
break +/- offset 在当前行的前/后的offset行处停住
break [args] if [conditions] 在condition条件成立时断住在args条件
clear 清除所有已定义的断点
clear func 清除函数func上所有的断点
delete [breakpoints][range] 删除指定的断点,如果不指定则删除所有的断点,range,eg:delete 1-5
disable/dis [breakpoints][range] 屏蔽断点,程序再执行到断点是不会停止,gdb也不会删除断点,再需要时可以再开启断点。不指定默认屏蔽所有已经设置的断点
enable [breakpoints][range] 开启disable屏蔽的断点
enable once breakpoints 启动断点一次
enable delete breakpoints 启动断点一次之后就删除
enable count numbers breakpoints  启动断点并且只命中断点numbers次
ignore breakpoints numbers 忽略断点前numbers次命中
commands 遇到断点后执行特定的指令
eg: commands 遇到最后一个时要执行的指令
eg: commands n 遇到断点n要执行的指令

函数调用栈

backtrace/bt 打印当前线程的堆栈列表
frame bt_number 跳转到当前堆栈的第bt_number层
thread apply all backtrace(t a a bt) 打印所有线程的堆栈信息

打印

print val
p val
x 按照十六进制显示变量
d 按照十进制显示变量
u 按照十六进制显示无符号整型
o 按照八进制显示变量
t 按照二进制显示变量
a 按照十六进制显示变量
c 按照字符格式显示变量
f 按照浮点数显示变量b 字节
h 半字节
w 四字节
g 八字节x/[repeat_count][FMT][size_letters] addr
repeat_count 为打印四次
FMT 打印格式
size_letters 每次打印的字节数eg: 按照16进制打印128字节
x/32xw arr 16进制打印32次四字节
x/128xb arr 16进制打印128次1字节
whatis 显示某个变量或表达式的数据类型
ptype 显示数据类型,比起whatis的优势在于可以显示typedef定义的类型

单步执行

next(n) 单步跟踪,如果有函数调用,不会进入函数
step(s) 单步跟踪,如果遇到函数调用,则会进入该函数

结束函数

finish 直到当前函数执行完成返回。并打印函数返回值
until <linenumber>
当函数内一个循环次数很多时,单步跟踪就会让人感到烦躁,这个命令可以跳出循环体,或者跳到linenumber行

观察点

观察点一般是使用来观察某个表达式的值是否发生了变化,如果有变化就停止程序。

watch count == 5 当表达式count等于5的时候停止程序rwatch 变量或表达式被读取时程序就会中断awatch 无论这个变量被读取还是被写入程序都会发生中断info watchpoints 产看所有观察点delete/disable/enable n 删除/禁用/启用 观察点n

查看代码

list filename:number 列出filename文件的第number行代码
list function 列出函数function的代码
list 打印当前函数的一部分代码,默认是当前行向下翻页
list -打印上一次list的代码的前一段代码,类似与向上翻页
show listsize 现在现在默认是一次打印出几行代码
set listsize 设定一次打印出几行代码

查看数组内容

当需要查看一段连续的内存空间的值时。比如数组的一段大小,或者是动态分配的数据的大小。可以使用@符号查看。@的左值是第一个内存的地址的值,右值是你想要查看的内存的长度。

p arr@len
$1 = {1, 2, 3, 4, 5}

或者可以循环打印出数组的每一个值

set $i = 0
while $i < arr.size()
>print arr[$i]
>set $i = $i + 1
>end$2 = 1
$3 = 2
$4 = 3
$5 = 4
$6 = 5

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

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

相关文章

MySQL主从复制原理

1、MySQL主从复制的三个步骤及其原理图 slave会从master读取binlog来进行数据同步 MySQL复制过程分成三步&#xff1a; 1、master将改变记录到二进制日志&#xff08;binary log&#xff09;。这些记录过程叫做二进制日志事件&#xff0c;binary log events。 2、slave将ma…

AcWing 第127场周赛 构造矩阵

构造题目&#xff0c;考虑去除掉最后一行最后一列先进行考虑&#xff0c;假设除了最后一行和最后一列都已经排好了&#xff08;你可以随便排&#xff09;&#xff0c;那么分析知最后一个数字由限制以外其他都已经确定了&#xff0c;无解的情况是k为-1 并且n&#xff0c;m的奇偶…

【多线程面试题十七】、如果不使用synchronized和Lock,如何保证线程安全?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;如果不使用synchronized…

【Linux】虚拟机部署与发布J2EE项目(Linux版本)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

零资源的大语言模型幻觉预防

零资源的大语言模型幻觉预防 摘要1 引言2 相关工作2.1 幻觉检测和纠正方法2.2 幻觉检测数据集 3 方法论3.1 概念提取3.2 概念猜测3.2.1 概念解释3.2.2 概念推理 3.3 聚合3.3.1 概念频率分数3.3.2 加权聚合 4 实验5 总结 摘要 大语言模型&#xff08;LLMs&#xff09;在各个领域…

FedGNN: Federated Graph Neural Network for Privacy-Preserving Recommendation

FedGNN&#xff1a;用于隐私保护推荐的联邦图神经网络 参考笔记 ICML-21-workshop 本文的主要创新工作 在具有局部差分隐私的模型训练中保护模型梯度&#xff0c;并提出一种伪交互项目采样技术来保护用户与之交互的项目。提出了一种保护隐私的用户-项目图扩展方法&#xff0…

Go学习第十七章——Gin中间件与路由

Go web框架——Gin中间件与路由 1 单独注册中间件1.1 入门案例1.2 多个中间件1.3 中间件拦截响应1.4 中间件放行 2 全局注册中间件3 自定义参数传递4 路由分组4.1 入门案例4.2 路由分组注册中间件4.3 综合使用 5 使用内置的中间件6 中间件案例权限验证耗时统计 1 单独注册中间件…

【c++|opencv】一、基础操作---3.访问图像元素

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 访问图像元素 1. 访问图像像素 1.1 访问某像素 //灰度图像&#xff1a; image.at<uchar>(j, i) //j为行数&#xff0c;i为列数 //BGR彩色图像 i…

思维训练第三课 反意疑问句

系列文章目录 文章目录 系列文章目录前言一、什么是反意疑问句二、反意疑问句的回答&#x1f49a;主系表/主谓宾&#xff08;肯定&#xff09;&#xff0c;否定提问1、一般现在时2、一般过去时3、一般将来时4、现在完成时 &#x1f49b; 主谓宾1、一般现在2、一般过去3、一般将…

大数据可视化BI分析工具Apache Superset实现公网远程访问

大数据可视化BI分析工具Apache Superset实现公网远程访问 文章目录 大数据可视化BI分析工具Apache Superset实现公网远程访问前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网…

【mfc/VS2022】计图实验:绘图工具设计知识笔记3

实现类对串行化的支持 如果要用CArchive类保存对象的话&#xff0c;那么这个对象的类必须支持串行化。一个可串行化的类通常有一个Serialize成员函数。要想使一个类可串行化&#xff0c;要经历以下5个步骤&#xff1a; 1、从CObject派生类 2、重写Serialize成员函数 3、使用DE…

java基础 集合2

前9点&#xff0c;在另一篇作品中&#xff0c;可以从集合1开始观看 9.List遍历方式&#xff1a; 10.Arraylist底层原理&#xff1a; 11.Linklist底层原理&#xff1a; 1.LinkedList做队列和栈&#xff1a; package day01;import java.util.ArrayList; import java.util.I…

MySQL扩展语句和约束方式

一、扩展语句 复制&#xff0c;通过like这个语法直接复制bbb的表结构。只是复制表结构&#xff0c;不能复制表里面的数据 把bbb表里面的数据&#xff0c;复制到test&#xff0c;两个表数据结构要一致 创建一张表&#xff0c;test1,数据从bbb来&#xff0c;表结构也是bbb delete…

医院室内地图导航技术分析与作用

随着科技的不断发展&#xff0c;医疗行业的服务水平也在逐步提高。为了方便患者和医务人员&#xff0c;医院室内地图导航技术应运而生。这种技术运用了多种元素&#xff0c;包括模型地图、室内3D电子地图、路线指引、对接医院系统、位置分享和寻车导航等&#xff0c;为医院提供…

论文阅读——DistilBERT

ArXiv&#xff1a;https://arxiv.org/abs/1910.01108 Train Loss: DistilBERT&#xff1a; DistilBERT具有与BERT相同的一般结构&#xff0c;层数减少2倍&#xff0c;移除token类型嵌入和pooler。从老师那里取一层来初始化学生。 The token-type embeddings and the pooler a…

Linux的简介和环境搭建

简介 Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想&#xff0c;是一个…

kafka-consumer-groups.sh

通过 kafka-consumer-groups.sh 脚本查看或变更消费组的信息。 查看消费者组信息 ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list 查看指定消费者组的消费位移 ./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group g…

吃瓜教程3|决策树

ID3算法 假定当前样本集合D中第k类样本所占比例为pk&#xff0c;则样本集合D的信息熵定义为 信息增益 C4.5算法 ID3算法存在一个问题&#xff0c;就是偏向于取值数目较多的属性&#xff0c;因此C4.5算法使用了“增益率”&#xff08;gain ratio&#xff09;来选择划分属性 CA…

计算机网络与技术——数据链路层

&#x1f60a;计算机网络与技术——数据链路层 &#x1f680;前言☃️基本概念&#x1f94f;封装成帧&#x1f94f;透明传输&#x1f94f;差错检测 ☃️点对点协议PPP&#x1f94f;PPP协议的特点&#x1f94f;PPP协议的帧格式&#x1f50d;PPP异步传输时透明传输&#xff08;字…

13.计算机视觉

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 数据增广一、数据增广二、D2L代码注意点三、QA No.2 微调一、微调二、D2L代码注意点三、QA No.3 第二次竞赛 树叶分类结果No.4 实战 Kaggle 比赛&#xff1a;图像分类&#xff08;CIFAR-10&#xff09;一、Kaggle Cifar…