gdb调试跟踪代码

news2024/11/19 5:52:10
  1. 编译
    用gcc/g++编译源程序的时候,编译后的可执行文件不会包含源程序代码,如果要使用gdb调试的话,编译的时候要加 -g 的参数。
gcc test.c  -o test -g
  1. 调试
gdb test

常用命令:
(gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h
(gdb)run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r
(gdb)start:单步执行,运行程序,停在第一执行语句
(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数),简写l
(gdb)set:设置变量的值
(gdb)next:单步调试(逐过程,函数直接执行),简写n
(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s
(gdb)backtrace:查看函数的调用的栈帧和层级关系,简写bt
(gdb)frame:切换函数的栈帧,简写f
(gdb)info:查看函数内部局部变量的数值,简写i
(gdb)finish:结束当前函数,返回到函数调用点
(gdb)continue:继续运行,简写c
(gdb)print:打印值及地址,简写p
(gdb)quit:退出gdb,简写q
(gdb)break+num:在第num行设置断点,简写b
(gdb)info breakpoints:查看当前设置的所有断点
(gdb)delete breakpoints num:删除第num个断点,简写d
(gdb)display:追踪查看具体变量值
(gdb)undisplay:取消追踪观察变量
(gdb)watch:被设置观察点的变量发生修改时,打印显示
(gdb)i watch:显示观察点
(gdb)enable breakpoints:启用断点
(gdb)disable breakpoints:禁用断点
(gdb)x:查看内存x/20xw 显示20个单元,16进制,4字节每单元
(gdb)run argv[1] argv[2]:调试时命令行传参
(gdb)set follow-fork-mode child#Makefile项目管理:选择跟踪父子进程(fork())

备注:
如果在gdb调试,出现 没有那个文件或目录,可以通过如下方式解决
在这里插入图片描述
进入gdb

(gdb) show debug-file-directory 
//查看当前的debug路径
(gdb) set debug-file-directory  
// 设置debug路径,这里为空。

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

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

相关文章

jira-dev-tool插件安装失败的解决方法

最近,在运行【React React Hook TS 最佳实践仿 Jira 企业级项目】的时候,安装jira-dev-tool 插件出现问题,参考:https://www.npmjs.com/package/jira-dev-tool。解决方法:在项目中执行: npx msw init pu…

Layer2 实现方式之 Rollup

一. 1. Rollup 简介 Rollup 是类似于 Plasma 的第 2 层扩展解决方案:单个主链合约持有所有资金和对更大“侧链”状态(通常是账户、余额及其状态的 Merkle 树)的简洁加密承诺。侧链状态由链下用户和运营商维护,不依赖 L1 存储&…

C语言文件读写

上一章我们讲解了 C 语言处理的标准输入和输出设备。本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层…

linux------基本操作指令(1)

1)JAVA是一个跨平台的编程语言,多线程编程,网络编程在JAVA标准库里面本身就有 2)C的标准库相比于JAVA的标准库还是要弱一些,网络编程已经不支持了 3)linux是世界上第一大操作系统 李纽克斯 李娜克斯 李呢克斯 李妮克斯 一:背景知识 1)内网I…

串口监听:以共享模式打开端口CreateFile,居然无法再打开?但文件可以。

想以共享模式来监听串口 结果打开失败,错误5 拒绝访问。为什么呢? 但是文件却正常 看了两个监听串口的软件bus hound和commMonitor都是需要驱动才能实现 单纯共享打开,可以无法监听串口,那学习一下windows驱动吧。 windows驱动 …

为加快项目开发进度,如何快速合理分配开发任务?

1、对任务进行合理分类 软件开发项目,任务繁多,需要对任务进行分类,以便优先完成重要任务。一般最常规的方法是时间四象限法,即按照重要和紧急程度对任务进行划分:重要紧急、重要不紧急、紧急不重要、不重要不紧急四类…

UE4 Shader 常用函数 学习笔记

Add:快捷键a 将两数相加,也可以将两纹理相加,如下图: append(追加): Subtract(减): 和加相反,特例,如下: Abs&#xff0…

企业需要防范的 6 个常见身份攻击手段|身份云研究院

零信任作为新一代的网络安全防护理念,已经成为全球网络安全管理的基石。零信任的核心是 「安全体系架构从网络中心化走向身份中心化」,「以身份为中心」的网络访问控制理念也逐渐被越来越多企业接受并实践。 然而企业在面向用户身份访问和管理的实践中还…

一文读懂锁、互斥量、原子操作的并发控制策略

前言:在程序设计过程中,难免涉及操作系统、多进程、多线程、数据库等领域。在这些领域内,确保对共享资源的异步操作不出差错,是每个程序开发者必须要考虑的问题。面对并发问题,除了需要谨慎和小心外,引入并…

《图解TCP/IP》阅读笔记(第七章 7.7)——MPLS 多协议标记交换技术

7.7 MPLS 由小而大的讲完了三种路由协议RIP、OSPF、BGP之后,我们来看在转发IP数据包时使用到的另外一种技术——标记交换技术。 路由技术基于IP地址中的最长匹配原则进行转发,而标记交换则对每个IP包都设定一个叫做“标记”的值,根据该标记…

数据结构与算法-堆

什么堆 堆是一种特殊的数据结构,是最高效的优先级队列。可以被看作是一颗完全的二叉树表达的数组对象。 堆的定义 1、必须是一颗完全二叉树 完全二叉树就是子节点必须从左到右都是完整的,没有缺失。 2、用数组表示看作完全二叉树的堆 假设&#xff1a…

基于MYSQL的互联网药品交易系统数据库设计项目实战

说明:这是一个数据库课程设计实战项目(附带代码文档视频讲解),如需代码文档视频讲解可以直接到文章最后获取。 项目背景 疫情期间实体经济收到打击,实体药店经营困难,医院也面临着疫情患者的压力运转着&…

window安装Docker Desktop for Windows(基于WSL2)

目录一 什么是Ducker二 安装Ducker1 window for Linux子系统环境搭建1.1 打开系统虚拟机平台和WSL(适用于Linux的window子系统)1.2安装WSL21.3为什么用wsl2,不用wsl11.4 下载集成支持linux内核的wsl21.5 设置WSL默认版本二、安装Ubuntu20.04LTS1 打开Microsoft Stor…

解析某音短视频X-Bogus

文章目录写在前面目标正向梳理主要加密函数主要算法解析逆向梳理结论测试进阶写在后面写在前面 首先推荐一篇资料: 某音短视频 X-Bogus 逆向分析,JSVMP 纯算法还原 这篇文章介绍了通过插桩日志抠算法的过程,很有参考价值。 文章已经实现的部…

什么是外汇跟单?外汇MT4自动跟单系统靠谱吗?

对于很多刚刚进入外汇市场的新手投资者而言,必须踏踏实实学习基础知识和交易技巧,才能在外汇市场获取盈利,因为在没有任何专业知识的情况下,想要在外汇市场盈利是一件非常艰难的事情。而一些脑洞大开的外汇新手投资者却在思考&…

第7章 分页之模型分页(物理分页)

模型分页主要通过前端页面中的分页控件,向后端指定路由(控制器行为方法),传递相等的参数,然后间接的通过后端程序从数据库指定表中获取一些指定行的数据,然后把这些数据在前端页面渲染显示出来。模型分页的主要用于前端页面与后端…

Java开发 - 数据库索引的数据结构

目录 前言 题外话 什么是索引 索引的使用场景 索引的失效瞬间 索引的数据结构 Tree BTree BTree 索引提高查询效率的原因 索引的分类 innodb的特点 聚簇索引 非聚簇索引 索引操作 创建索引 查询索引 删除索引 外键 结语 前言 上一章中讲解了慢sql优化的方…

快速诊断I/O性能问题

背景客户反馈最近一段时间数据库运行缓慢,磁盘的压力很大,现在有两种不同的分析结论,存储设备性能下降和数据库压力变大,请我们进行系统的分析,给一个结论 现象 登录SQL专家云,进入性能指标页面&#xff0c…

跨境电商小白:一件代发是什么?为什么要选择Starday一件代发?

近两年经济形势比较复杂多变,许多人面临就业难、职场改革、行业转型等困境,而跨境电商行业在此形势下依靠着国家优惠政策以及中国高质量产品在海外市场获得越来越多的份额。随着跨境电商行业发展规模的扩大,越来越多人选择加入到跨境电商赛道…

【实时数仓】省份交易额统计接口、新老访客对比接口、访客分时统计接口

文章目录一 省份交易额统计接口1 Sugar配置(1)图表配置(2)接口地址(3)数据格式(4)执行SQL2 数据接口实现(1)创建地区交易额统计实体类ProvinceStats&#xff…