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 }
相关推荐
wj3055853785 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
abigriver5 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
wangqiaowq6 小时前
windows下nginx的安装
linux·服务器·前端
YYRAN_ZZU6 小时前
Petalinux新建自动脚本启动
linux
charlie1145141917 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记7 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
于小猿Sup7 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
不仙5209 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
189228048619 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存