linux——调试


❀保持低旋律节奏->个人主页

专栏链接:《C++学习》《Linux学习》


文章目录

代码 功能:基本功能
l (list) 查看代码
b n 打断点
info b 查看断点
d n 删除断点
代码 功能:跨段运行
r(run) 运行至第一个断点
c(continue) 运行至下一个断点
b 函数名 停在函数内部第一行
until 无法跨越函数
finish 执行到当前函数返回然后停止
代码 功能:逐步运行
n (next) 逐步调试
s (step) 逐过程调试
代码 功能:断点使能
disable 关闭断点
enable 使能断点
代码 功能:监视
diplay 查看(持续监视)
whatch 检测某一变量的变化
set val 设置新数值

全部过程

bash 复制代码
# 1. 启动GDB
gdb ./proc.exe

# 2. 查看代码
(gdb) l main
(gdb) l 15,20

# 3. 打断点
(gdb) b 29   # main函数调用print_loop_info行
(gdb) b calculate_square  # 平方函数断点

# 4. 查看断点
(gdb) info b

# 5. 运行到第一个断点
(gdb) r

# 6. 进入函数内部
(gdb) s

# 7. 持续监视i
(gdb) display i

# 8. 逐步执行,看i变化
(gdb) n
(gdb) n

# 9. 监视i的变化
(gdb) watch i
(gdb) c

# 10. 修改i的值
(gdb) set i = 8
(gdb) n

# 11. 执行完当前函数
(gdb) finish

# 12. 关闭断点
(gdb) disable 2
(gdb) info b

# 13. 删除断点
(gdb) d 1
(gdb) info b

# 14. 退出GDB
(gdb) q

C语言代码

c 复制代码
 16         // 调用平方函数,获取结果
 17         int square = calculate_square(i);
 18         // 格式化打印:循环次数、当前值、平方值
 19         printf("第 %d 次循环 | 当前值:%d | 平方值:%d\n", i - start + 1,     i, square);
 20     }
 21     printf("循环结束!\n");                                              
 22 }
 23 
 24 int main() {
 25     // 程序入口打印
 26     printf("===== Linux C 调试示例 =====\n");
 27     
 28     // 调用自定义函数:循环1到5
 29     print_loop_info(1, 5);
 30 
 31     printf("\n程序正常退出\n");
 32     
 33     return 0;
 34 }
相关推荐
画中有画11 小时前
使用yolov8实现自动化脚本
运维·yolo·自动化
Piko61413 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
JAVA面经实录91713 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
万联WANFLOW16 小时前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
酱学编程16 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
SkyWalking中文站18 小时前
认识 Horizon UI · AI Assistant:用日常语言查询你的可观测性数据
运维·监控·自动化运维
艾莉丝努力练剑18 小时前
OpenCode AI 编程:Ubuntu 24.04 环境安装与使用指南
linux·服务器·网络·人工智能·tcp/ip·ubuntu
崇山峻岭之间19 小时前
Keil5输出hex转换为bin的设置
linux·运维·服务器
Hoxy.R19 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
谷雪_65819 小时前
Linux 网络命名空间:从内核原理到企业级容器网络架构全景实战
linux·网络·架构