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 }
相关推荐
一叶知秋yyds21 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
专吃海绵宝宝菠萝屋的派大星21 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
斯普信云原生组21 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
大数据新鸟21 小时前
操作系统之虚拟内存
java·服务器·网络
safestar20121 天前
ES批量写入性能调优:BulkProcessor 参数详解与实战案例
java·大数据·运维·jenkins
来一颗砂糖橘1 天前
负载均衡的多维深度解析
运维·负载均衡
楠奕1 天前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
GCTTTTTT1 天前
远程服务器走本地代理
运维·服务器
剑锋所指,所向披靡!1 天前
Linux常用指令(2)
linux·运维·服务器
做咩啊~1 天前
6.增加一个flat网段
服务器·openstack