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 }
相关推荐
测试界的小码农8 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
|_⊙9 小时前
网络层协议 IP
服务器·网络·tcp/ip
byte轻骑兵9 小时前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮9 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮9 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
AR-26710-10 小时前
Linux Day32——实操五类资源告急排查
linux·运维
skywalk816310 小时前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive
StarsGreen10 小时前
libva中的图像格式说明
linux
H.莓飛11 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
Rabitebla11 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法