# 加载程序
gdb [ programaName ] 直接加载程序开始逐步调试 gdb -p [ PID ] 通过PID加载正在运行的程序 gdb [ programaName ] [ programaCore ] 加载core文件进行分析
# 学习网址
https://cloud.tencent.com/developer/article/2222987
# 调用终端命令
gdb shell [ shell command ]
# 设置断点
gdb break [ function ] gdb break [ line ] gdb break [ file ] gdb break [ file : function ] gdb break [ line ] [ if 变量名 == 值 ] gdb disable [ breakpoint_ID ] 激活断点 gdb enable [ breakpoint_ID ] 禁用断点
# 删除断点
gdb del [ point ]
# 显示信息
gdb info
# 有关运行控制的
gdb run 开始调试 gdb start 运行到main停止 gdb continue 继续执行 gdb next 步过 gdb step 步入 gdb finish 跳出 gdb stop 停止 gdb until [ line ]运行到指定行
# 查看调用运行信息
gdb backtrace // 查看调用堆栈 gdb where // 查看当前断点位置 gdb ptype [ 变量名 ] // 查看变量的类型 可以看到类/结构体的成员 gdb whatis [ 变量名 ] // 查看变量的类型 只能看到变量类型
# 打印信息
gdb print [ 变量名 ] gdb print pre[0]@n // 打印数组前n个元素
# 监视变量
gdb rwatch [ 表达式 ] 当出现'读'的操作时显示变量 gdb awatch [ 表达式 ] 当出现'读写'的操作时显示变量 gdb watch [ 表达式 ] 值改变时显示变量 gdb delete [ watch_ID ] 删除watchpoint gdb display [ 表达式 ] 实时显示变量值 gdb undisplay [ display_ID ] 删除displaypoint
# 设置变量值
gdb set var [ 变量名 ] == [ 变量值 ]
# 查看源代码
gdb list [ function ] gdb list [ file ] gdb list [ file ] : [ function ] gdb list [ file ] : [ line ] gdb list [ function ] : [ line ]
# 开启日志功能
gdb set logging on
# 进入编辑模式
gdb edit
# 反汇编
gdb disassemble