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 }
相关推荐
正在学习前端的---小方同学1 小时前
Harbor部署教程
linux·运维
牛奔2 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
翼龙云_cloud2 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
Sean X2 小时前
Ubuntu24.04安装向日葵
linux·ubuntu
墨风如雪2 小时前
拒绝被找回!MJJ必修课:Outlook邮箱交易后的“防回手”安全设置全攻略
服务器
DX_水位流量监测3 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
电商API&Tina3 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
IT 乔峰4 小时前
脚本部署MHA集群
linux·shell
dz小伟4 小时前
execve() 系统调用深度解析:从用户空间到内核的完整加载过程
linux
Mr_Xuhhh4 小时前
博客标题:深入理解Shell:从进程控制到自主实现一个微型Shell
linux·运维·服务器