【Linux】GCCGDB
五、GCC & GDB
5.1 gcc
| 阶段 | 变化 | 命令 |
|---|---|---|
| 预处理 | hello.c->hello.i | gcc -E |
| 编译 | hello.i->hello.s | gcc -S |
| 汇编 | hello.s->hello.o | gcc -c |
| 链接 | hello.o->a.out | gcc |
gcc -E hello.c -o 1.i # -o指定输出文件
gcc -E hello.c -g # -g包含提示信息
gcc -D
gcc -DDebug <FILE>
gcc -DSize 12 <FILE>
5.2 gdb
5.3.1 生成调试信息
没有-g,将看不到程序的函数名、变量名,所替代的是运行时的内存地址
gcc -g 1.c -o 1
g++ -g 1.cpp -o 1
5.3.2 启动dgb
gdb <执行文件> # 启动gdb
5.3.3 设置运行参数
set args <arg1> <arg2> ... <argn> # 指定运行时的参数, argv[]
show args # 查看设置好的运行参数
5.3.4 显示源代码
list # 默认打印10行(一般是打印当前行的前五行和后五行)
list <LINENUM> # 指定打印的行数
list <FUNCTION_NAME> # 显示函数名为FUNCTION_NAME的源程序
list - # 显示当前行前面的代码set listsize <COUNT> # 设置一次显示源代码的行数
show listsize # 查看当前的listsize
5.3.5 断点
5.3.5.1 简单断点break(可用b代替)
break 10 # 设置断点在第10行
b 10
break main # 设置断点在main函数
b main
5.3.5.2 多文件设置断点
break filename:linenum # 在filename中的linenum行打断点
break filename:function # 在filename中的function处打断点
break class::function # 在class中的function处打断点
break namespace::class::function # 在名称空间为namespace中的class类中的function处打断点
5.3.5.3 查询断电info(可用i代替)
info b
info break
i break
i b
5.3.5.4 条件断点
b <filename>:<linenum> if <param> == 5
b 1.c:8 if a == 5
5.3.5.5 维护断点(删除断点delete(d), 使断点无效disable(dis), 是断点生效enable(ena))
-
删除断点
delete [range..] delete 断点号1 # 删除断点号为1的断点 delete 断点号1 - 断点号4 # 删除断点号1-4的断点 -
使断点无效
disable # 没有指定,全部断点失效 disable [range] # 和删除断电一个用法 -
使断点生效
enable # 没有指定,全部断点生效 enable [range]
5.3.6 调试代码
| 指令 | 含义 | 简写 |
|---|---|---|
| run | 运行程序 | r |
| next | 单步跟踪,不会进入函数体内 | n |
| step | 单步跟踪,会进入函数体内 | s |
| finish | 退出进入的函数 | |
| until | 在一个循环体内单步跟踪时,可以运行程序知道退出循环体 | u |
| conintue | 继续运行程序到下一个断点处 | c |
| quit | 退出gdb | q |
5.3.7 数据查看(print(p))和自动显示(display)
- 数据查看
print 变量/表达式/字符串
- 自动显示(
display)
在程序运行过程中,每次停住的时候,这些变量都会自动显示
display 变量名
info display # 查看display设置的自动显示的信息
undisplay num # num(info display显示的编号),取消自动显示
disable display num # 使得..失效
enable display num # 恢复
- 查看变量的值的类型
ptype 变量
- 设置变量的值
set var 变量=100 # 将变量的var值设置为100
相关文章:
【Linux】GCCGDB
五、GCC & GDB 5.1 gcc 阶段变化命令预处理hello.c->hello.igcc -E 编译hello.i->hello.sgcc -S 汇编hello.s->hello.ogcc -c 链接hello.o->a.outgcc gcc -E hello.c -o 1.i # -o指定输出文件 gcc -E hello.c -g # -g包含提示信息 gcc -D gcc -DDebug <…...
InternLM2-Chat-1.8B 模型测试
在interStudio进行InternLM2-Chat-1.8B模型访问,进入开发机后 配置基础环境 新建conda环境并且进入 conda create -n demo python3.10 -y conda activate demo 下载pytorch等相关包 conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.…...
Flutter 关键字
import ‘package:xxxx.dart’; //源于pub.dev (完美的相对引入) import ‘xxxx.dart’; //自定义文件(库)(参考的相对引入(填写import命令码所在文件的上级文件夹下的文件(库)相对路径))(受到import命令码所在文件的参考路径的影响) import:import不具有传递性(类似…...
Java常用API之Collections类解读
写在开头:本文用于作者学习Java常用API 我将官方文档中Collections类中所有API全测了一遍并打印了结果,日拱一卒,常看常新 addAll() 将所有指定元素添加到指定 collection 中 可以添加一个或多个元素 Testpublic void test_addAl…...
KV260 BOOT.BIN更新 ubuntu22.04 netplan修改IP
KV260 2022.2设置 BOOT.BIN升级 KV260开发板需要先更新BOOT.BIN到2022.2版本,命令如下: sudo xmutil bootfw_update -i “BOOT-k26-starter-kit-202305_2022.2.bin” 注意BOOT.BIN应包含全目录。下面是更新到2022.1 FW的示例,非更新到2022.…...
Android 代码自定义drawble文件实现View圆角背景
简介 相信大多数Android开发都会遇到一个场景,给TextView或Button添加背景颜色,修改圆角,描边等需求。一看到这样的实现效果,自然就是创建drawble文件,设置相关属性shap,color,radius等。然后将…...
C#实现Word文档转Markdown格式(Doc、Docx、RTF、XML、WPS等)
文档格式的多样性丰富了我们的信息交流手段,其中Word文档因其强大的功能性而广受欢迎。然而,在网络分享、版本控制、代码阅读及编写等方面,Markdown因其简洁、易于阅读和编辑的特性而展现出独特的优势。将Word文档转换为Markdown格式…...
信息系统架构设计-以服务为中心的企业整合实践
生命周期 业务分析服务建模架构设计系统开发 案例背景 某航空公司的信息系统已有好几十年的历史。该航空公司的主要业务系统构建于20世纪七八十年代,以IBM的主机系统为主。 近年来,该公司已经在几个主要的核心系统之间构建了用于信息集成的信息Hub(I…...
mysql知识点梳理
mysql知识点梳理 一、InnoDB引擎中的索引策略,了解过吗?二、一条 sql 执行过长的时间,你如何优化,从哪些方面入手?三、索引有哪几种类型?四、SQL 约束有哪几种呢?五、drop、delete、truncate的区…...
版本排序,(如果 版本 是 1,1a,1.1a, 2, 2c , 1c , 1.2a, 3 , 5b , 5)进行排序
如果 版本 是 1,1a,1.1a, 2, 2c , 1c , 1.2a, 3 , 5b , 5 对上面的进行排序 利用 VersionComparator 导入依赖 <dependency><groupId>cn.hutool</groupId…...
Google视觉机器人超级汇总:从RT、RT-2到AutoRT、SARA-RT、RT-Trajectory
前言 随着对视觉语言机器人研究的深入,发现Google的工作很值得深挖,比如RT-2 想到很多工作都是站在Google的肩上做产品和应用,Google真是科技进步的核心推动力,做了大量大模型的基础设施,服 故有了本文…...
python笔记(9)Dictionary(字典)
目录 创建字典 取值 修改字典 删除 内置函数和方法 创建字典 字典键值和value用:隔开,键值是不可变的,而且必须是唯一的,值可以变,可以是任意类型 dict {key1 : value1, key2 : value2 } 1)不允许同…...
蓝桥杯嵌入式总结
用到外部时钟:UART,ADC,RTC 用到中断:UART,TIM LED_KEY: 将高低电平写入对应引脚 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); 读取对应引脚的电平状态 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) UART: 发送: int fputc(int …...
渗透测试:数据库UDF提权(linux)
目录 开头: 1.UDF提权简介: 1.1共享库文件(UDF文件)指定目录: 版本特征: 操作系统版本: 2.靶场UDF提权复现 提权前提 1.要有一个高权限的MySQL的账号 编辑 2.MySQL的权限配置secure_file_priv为空 3.必须有存放UDF文件的…...
java算法day45 | 动态规划part07 ● 70. 爬楼梯 (进阶) ● 322. 零钱兑换 ● 279.完全平方数
70. 爬楼梯 (进阶) 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 输入描述:输入…...
HuggingFace踩坑记录-连不上,根本连不上
学习 transformers 的第一步,往往是几句简单的代码 from transformers import pipelineclassifier pipeline("sentiment-analysis") classifier("We are very happy to show you the 🤗 Transformers library.") ""&quo…...
面试题:Spring Boot Starter的功能与使用场景
Spring Boot Starter 是 Spring Boot 框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景: 功能: 1. 依赖管理每个 Starter 都是一组相关的依赖项集合,这些依赖项都是为了实现特定功能…...
上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 工业场景中,很多时候图像是用来做测量的。虽然我们很希望载台是平的,摄像头是正对着拍摄物体的,但是运行时间长…...
Francek Chen 的128天创作纪念日
目录 Francek Chen 的128天创作纪念日机缘收获日常成就憧憬 Francek Chen 的128天创作纪念日 Francek Chen 的个人主页 机缘 不知不觉的加入CSDN已有两年时间了,最初我第一次接触CSDN技术社区是在2022年4月的时候,通过学长给我们推荐了几个IT社区平台&a…...
PyTorch之Torch Script的简单使用
一、参考资料 TorchScript 简介 Torch Script Loading a TorchScript Model in C TorchScript 解读(一):初识 TorchScript libtorch教程(一)开发环境搭建:VSlibtorch和Qtlibtorch 二、Torch Script模型格…...
Cangaroo:开源CAN总线分析软件架构解析与深度优化指南
Cangaroo:开源CAN总线分析软件架构解析与深度优化指南 【免费下载链接】cangaroo Open source can bus analyzer software - with support for CANable / CANable2, CANFD, and other new features 项目地址: https://gitcode.com/gh_mirrors/ca/cangaroo Ca…...
TrendForge 每日精选:10 个热门开源项目,今日总获星 11321 颗!
TrendForge 每日精选热门开源项目发布 TrendForge 致力于追踪全球开源项目动态,每日为开发者精选最具价值的 GitHub 项目。今日共收录 10 个热门项目,项目描述已自动翻译为智能中文翻译版,便于理解。 今日最热项目 Top 10 mattpocock/skills&…...
汉高2026年第一季度实现稳健有机销售增长
美通社消息:汉高公布了2026年第一季度的销售额,约为50亿欧元,有机(即根据汇率和收购/撤资进行调整后)销售额实现1.7%的稳健增长。两大业务部门均拉动业绩增长,销量与价格均实现正向增长。第一季度欧洲地区的有机销售下降3.4%。在印…...
ComfyUI-FramePackWrapper终极指南:8GB显存玩转高质量AI视频生成
ComfyUI-FramePackWrapper终极指南:8GB显存玩转高质量AI视频生成 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 想要在有限硬件条件下实现专业级AI视频生成吗?ComfyUI-Fram…...
手把手教你用Python/Node.js快速接入抖音开放平台,实现用户信息获取
Python/Node.js实战:抖音开放平台用户信息获取全流程解析 抖音开放平台为开发者提供了丰富的用户数据接口,但很多技术团队在对接过程中常因OAuth2.0流程复杂而卡在授权环节。本文将用两种主流技术栈演示如何快速完成从授权到获取用户信息的完整闭环。 1.…...
GitHub Enterprise MCP服务器:企业级代码管理的AI智能助手
1. 项目概述:当GitHub Enterprise遇上MCP,企业级代码管理的“智能副驾”最近在折腾企业内部的开发工具链,发现一个痛点:我们团队重度依赖GitHub Enterprise Server(GHES)进行代码托管和协作,但日…...
别再手动查字典了!用EggNOG-mapper 5.0一键搞定GO/KEGG/COG注释(附完整流程)
基因功能注释自动化:EggNOG-mapper 5.0实战指南 在基因组学研究中,功能注释是连接序列数据与生物学意义的关键桥梁。传统的手动注释流程往往需要研究人员在多数据库间反复切换,不仅耗时费力,还容易引入人为误差。而EggNOG-mapper…...
CodeMaker终极指南:如何5分钟掌握IntelliJ IDEA智能代码生成插件
CodeMaker终极指南:如何5分钟掌握IntelliJ IDEA智能代码生成插件 【免费下载链接】CodeMaker A idea-plugin for Java/Scala, support custom code template. 项目地址: https://gitcode.com/gh_mirrors/co/CodeMaker 还在为重复的Java和Scala编码工作而烦恼…...
【高光谱图像数据处理实战】基于Python的ENVI图像交互式裁剪与光谱数据预处理
前言在处理高光谱图像数据(Hyperspectral Imaging, HSI)时,我们常常需要面对两个核心问题:一是如何从庞大的三维数据立方体(Data Cube)中高效、准确地提取感兴趣区域(ROI)…...
Midjourney Spinach印相实操手册:手把手配置--sref、--stylize、--cw权重,5分钟复刻暗房级颗粒与褪色层次
更多请点击: https://intelliparadigm.com 第一章:Midjourney Spinach印相的核心美学溯源 Midjourney Spinach印相并非官方功能命名,而是社区对一类高对比度、低饱和、肌理感强烈且带有手工暗房隐喻的图像生成风格的诗意指称。“Spinach”一…...
