GDB学习笔记(一)--常用命令

GDB学习笔记(一)–常用命令

启动gdb

gdb test                  // 使用gdb调试test程序

运行

run                       // 开始运行。
run arg1 arg2 arg3 ...    // 开始运行,并传入命令行参数。

run 可简写为 r。

查看代码

list                      // 显示10行代码。
list line                 // 显示第line行附近的10行代码。
list n,m                  // 显示第n行至第m行之间的代码。
list ,n                   // 显示第n行及其前面的10行代码。
list fun                  // 显示fun()函数附近的10行代码。
list file:fun             // 显示file文件中fun()函数附近的10行代码。

list 可简写为 l。

断点

break n                   // 在第n行设置断点。
break fun                 // 在fun()函数处设置断点。
break file:n              // 在file文件中第n行设置断点。
break file:fun            // 在file文件中fun()函数处设置断点。
break if condition        // 当condition条件成立时,停止程序。
info break(i b)           // 查看断点。
watch expr                // 监视expr的值,expr可以是变量,也可以是表达式。若expr发生改变,停止程序。
delete n                  // 删除编号为n的断点。

break 可简写为 b。
delete 可简写为 d。

单步调试

continue                  // 运行至下一个断点。
step                      // 单步跟踪,进入函数。
next                      // 单步跟踪,不进入函数。
finish                    // 运行程序,直到当前函数完成返回。
                             打印函数返回时的堆栈地址,返回值以及参数值(finish不可用于main())。
until                     // 运行程序,直到退出循环体。

continue 可简写为 c。
step 可简写为 s。
next 可简写为 n。

数据的值

ptype x                   // 查看变量x的类型
print expr                // 查看expr的值,expr可以是变量,也可以是表达式。
print expr=x              // 修改expr的值,expr可以是变量,也可以是表达式。
print arrname             // 查看数组中的所有元素的值
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print arr
                            $1 = {1, 3, 5, 7, 9}
print arrname@len         // 查看len个数组的值(越界访问)
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print arr@2
                            $2 = {{1, 3, 5, 7, 9}, {32767, 0, 1, 0, 0}}
print *arrname            // 查看数组首元素的值
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print *arr
                            $3 = 1
print *arrname@len        // 查看数组前len个元素的值
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print *arr@2
                            $4 = {1, 3}
print &arrname            // 查看数组的地址
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print &arr
                            $5 = (int (*)[5]) 0x7fffffffe4c0
print &arrname[i]         // 查看数组元素arrname[i]的地址
                            例如:int arr[] = {1,3,5,7,9};
                            (gdb) print &arr[0]
                            $6 = (int *) 0x7fffffffe4c0
                            (gdb) print &arr[2]
                            $7 = (int *) 0x7fffffffe4c8

print 可简写为 p。

退出

quit                      // 退出gdb。

quit 可简写为 q。

回车

enter键                   // 重复执行上一条命令。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值