【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模型格…...
突破数字阅读壁垒:bypass-paywalls-chrome-clean工具深度实战指南
突破数字阅读壁垒:bypass-paywalls-chrome-clean工具深度实战指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息获取成本日益增高的今天,优质内容常常…...
AI原生应用:解决幻觉难题的有效途径
AI原生应用:解决幻觉难题的有效途径 关键词:AI原生应用、大模型幻觉、检索增强生成(RAG)、验证模块、智能系统架构 摘要:大语言模型(LLM)的“幻觉”(Hallucination)问题——生成与事实不符的内容,正成为AI应用落地的最大障碍。本文将从“AI原生应用”的视角出发,用通…...
如何安全高效地管理Cookie:Get cookies.txt LOCALLY本地处理终极实践指南
如何安全高效地管理Cookie:Get cookies.txt LOCALLY本地处理终极实践指南 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在数字时代&a…...
使用pycharm调试后端项目
本文主要解决终端工具与charm环境隔离问题,让终端虚拟环境与pycharm进行关联,简化pycharm的操作第一步 安装 UV 并创建虚拟环境(uv工具安装步骤已经跳过,不知道怎么安装的找AI问)确保系统中已安装 UV 工具。若需特定 P…...
别再死记硬背了!一张图+一个故事,帮你彻底搞懂分治、动态规划和贪心法的区别
算法三剑客:用旅行规划故事理解分治、动态规划与贪心法 想象你正在计划一次横跨欧亚大陆的三个月背包旅行。面对错综复杂的路线选择、预算分配和景点取舍,不同的决策策略会带来截然不同的旅行体验——这恰恰是分治法、动态规划和贪心算法在现实中的生动映…...
OV5640摄像头SCCB配置详解:告别照抄寄存器表,教你读懂数据手册进行个性化设置
OV5640摄像头SCCB高级配置实战:从寄存器表解读到图像优化全解析 1. 深入理解OV5640寄存器架构 OV5640作为OmniVision推出的500万像素图像传感器,其强大功能背后是超过200个可配置寄存器。许多开发者习惯直接套用现成的寄存器配置表,但当遇到图…...
高分二号卫星全解析:从光谱波段到城市管理的实战应用
1. 高分二号卫星的技术参数详解 高分二号卫星作为我国首颗亚米级高分辨率民用光学遥感卫星,其技术参数直接决定了它在城市管理中的应用能力。先说说最核心的空间分辨率:全色波段0.8米意味着能清晰识别小轿车级别的物体,多光谱3.2米分辨率则适…...
HunyuanVideo-Foley开发者指南:API封装、批量生成与二次开发接口详解
HunyuanVideo-Foley开发者指南:API封装、批量生成与二次开发接口详解 1. 镜像概述与环境准备 1.1 核心功能与硬件要求 HunyuanVideo-Foley是一款集视频生成与AI音效生成于一体的专业工具,本镜像针对RTX 4090D 24GB显卡进行了深度优化。主要功能包括&a…...
易语言飞将ddddocr识图识字PaddleOCR识图识字苍狼OCR简单识字简化
易语言飞将ddddocr识图识字PaddleOCR识图识字苍狼OCR简单识字简化 超级简单的识图识字模块,简单初始化后即可使用,不用做其它多余的步骤 超级简单,下载即用,特别适合小白使用 下载地址:https://daidijia.lanzoue.com/i…...
如何用League-Toolkit实现英雄联盟游戏自动化:3个核心模块深度解析
如何用League-Toolkit实现英雄联盟游戏自动化:3个核心模块深度解析 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Le…...
