lldb(gdb同位)
C++调试:
| 英文 | 专业翻译 | 说明 | LLDB 命令 | GDB 命令 |
|---|---|---|---|---|
| Step into | 步入 / 进入函数 | 调试时进入函数内部执行 | step / s |
step / s |
| Step over | 步过 / 跳过函数 | 执行当前行但不进入函数内部 | next / n |
next / n |
| Step out | 步出 / 跳出函数 | 执行完当前函数剩余代码并返回 | finish / fin |
finish / fin |
| Step back | 步退 / 回退一步 | 调试时回退到上一执行位置(部分调试器支持逆向执行) | reverse-step / revs(需启用反向调试) |
reverse-step / rs(需启用进程记录) |
| Run to cursor | 运行到光标处 | 执行代码直到到达光标所在行位置 | until <行号> 或 thread until <地址> |
until <行号> 或 advance <位置> |
| Continue | 继续执行 | 从当前位置继续运行直到下一个断点或程序结束 | continue / c |
continue / c |
| Start | 开始调试 / 启动 | 启动调试会话并开始执行程序 | run / r 或 process launch |
run / r |
| Breakpoint | 断点 | 在指定代码行设置的暂停标记,执行到此处时中断 | breakpoint set / b |
break / b |
| Set next statement | 设置下一语句 | 手动指定程序下一步要执行的代码行(不改变程序状态) | thread jump --line <行号> 或 jump |
jump <行号> 或 set $pc = <地址> |
| Watch variable | 监视变量 | 持续观察特定变量的值变化 | watchpoint set variable <变量名> / wa set var |
watch <变量名> 或 rwatch / awatch |
| Watch window | 监视窗口 | IDE中显示监视变量值的界面区域 | watchpoint list / frame variable(查看) |
info watchpoints / print <变量>(查看) |
| The call stack | 调用栈 | 显示程序当前函数调用层次的堆栈信息 | thread backtrace / bt |
backtrace / bt |
LLDB & GDB 常用命令速查
# ========== 断点管理 ==========
# LLDB
b main # 在 main 函数设置断点
b filename.cpp:42 # 在第42行设置断点
breakpoint list # 列出所有断点
breakpoint delete 1 # 删除编号1的断点
# GDB
break main # 在 main 函数设置断点
break filename.cpp:42 # 在第42行设置断点
info breakpoints # 列出所有断点
delete 1 # 删除编号1的断点
# ========== 执行控制 ==========
# LLDB / GDB 相同
run # 启动程序
continue # 继续执行
step # 步入(进入函数)
next # 步过(跳过函数)
finish # 步出(跳出当前函数)
# LLDB 特有
until 100 # 运行到第100行
# GDB 特有
until 100 # 运行到第100行
advance main:50 # 运行到指定位置
# ========== 反向调试 ==========
# LLDB
reverse-continue # 反向继续
reverse-step # 反向单步
reverse-next # 反向步过
# GDB(需先启用记录)
record full # 启用进程记录
reverse-continue # 反向继续
reverse-step # 反向单步
reverse-next # 反向步过
# ========== 监视点(数据断点)==========
# LLDB
watchpoint set var x # 监视变量 x 的变化
watchpoint list # 列出所有监视点
watchpoint delete 1 # 删除监视点
# GDB
watch x # 监视变量 x 的写入
rwatch x # 监视变量 x 的读取
awatch x # 监视变量 x 的读写
info watchpoints # 列出所有监视点
delete 1 # 删除监视点
# ========== 调用栈 ==========
# LLDB
bt # 显示完整调用栈
frame select 2 # 切换到第2层栈帧
up / down # 上下移动栈帧
# GDB
bt # 显示完整调用栈
frame 2 # 切换到第2层栈帧
up / down # 上下移动栈帧
info frame # 显示当前帧详细信息
# ========== 其他 ==========
# LLDB
thread jump --line 50 # 设置下一语句为第50行
frame variable # 查看当前帧的所有变量
expr <表达式> # 计算并显示表达式结果
# GDB
jump 50 # 跳转到第50行执行
info locals # 查看当前帧的局部变量
info args # 查看当前帧的参数
print <表达式> # 计算并显示表达式结果
set var x=10 # 修改变量值

浙公网安备 33010602011771号