![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GDB
GDB调试技巧和命令
KiranWang
某互联网大厂资深研发工程师。
展开
-
GDB 跳转执行
【代码】GDB 跳转执行。原创 2023-10-14 15:00:32 · 241 阅读 · 0 评论 -
GDB 源代码查看、管理、搜索、设置源代码目录,调试发行版,观察点
forward-search :跟 search功能一样。C_FLAGS中加入-g选项后,生成的可执行文件中会保存调试信息。1、 set listsize 10:设置list查看的代码行数。reverse-search:反向搜索。3、directories 路径:添加源代码路径。list 函数名: 产看函数代码。list -: 向前查看代码。原创 2023-09-09 10:17:50 · 562 阅读 · 0 评论 -
GDB 函数调用栈管理
1、bt:backtrace 查看栈回溯信息。#0号栈桢表示正在执行的函数,在栈的最顶部。3、info f n 查看栈桢信息。2、frame n 切换栈桢。栈的调用关系:后进先出。原创 2023-08-12 13:55:57 · 263 阅读 · 0 评论 -
GDB 寄存器的查看与修改
按顺序存放在寄存器r0,r1,r2,r3里,超过4个参数值传递则放栈里。2、 info registers :打印通用寄存器的内容。info all-registers:打印所有寄存器的内容。4 disassemble : 查看函数反汇编地址。3、info line 行号:查看代码反汇编地址。5、通过修改pc来改变程序执行的流程。1、 函数参数:参数。原创 2023-07-21 19:36:36 · 1615 阅读 · 0 评论 -
GDB 查看、修改内存
f是显示方式:x16进制、d 10进制、u 6进制无符号、c 字符格式、f 浮点数格式。u是一种地址的单元长度:b 单字节、h 双字节、w 四字节、g 八字节;x /4d 地址名: 以十进制形式显示改地址的4个bytes。2、x /nb 地址: 查看该地址n个bytes的内容。3、 x /s 地址名:该地址以字符串形式的内容。1、 p &变量名:查看变量的地址。或者 x /30b 结构体地址。格式: x /选项 内存地址。n是要显示的内存单元个数。原创 2023-07-10 17:54:39 · 2667 阅读 · 0 评论 -
GDB 查看、修改变量
p strlen(xxx) : 产看字符串xxx的长度,注意不能直接strlen,必须加p。5、 p sizeof(xxx) : 查看xxx的大小,注意不能直接sizeof(),必须加p。3、set print pretty :让结构体以定义的形式展示出来,一个字段一行。2、set print null-stop :遇到无效的字符就不显示出来了。4、 set print arry on :让数组中的元素每个占一行显示。6、p 变量名称 = 变量值: 修改变量的值。原创 2023-07-08 13:09:54 · 1013 阅读 · 0 评论 -
GDB 查看变量类型信息
【代码】GDB 查看变量类型信息。原创 2023-07-05 09:06:25 · 522 阅读 · 0 评论 -
GDB 为断点执行命令
4、把断点信息从文件中加载进来。原创 2023-08-05 14:47:31 · 131 阅读 · 0 评论 -
GDB 断点管理
6、禁用/使能某个断点 : disable 断点号 enable 断点号。2、rb 函数名关键字 : 所有带有这个关键字的函数名都设置为断点。8、info locals :打印本函数的局部变量。5、查看某个断点的信息: info b 断点号。usage 2: b 文件名:行号。usage 1: b 函数名。7、删除所有断点: delete。4 、临时断点: tb。原创 2023-07-01 12:00:43 · 220 阅读 · 0 评论