GDB的advance调试命令在LLDB中的等效替代命令是什么?
LLDB 等效 GDB advance 命令的方案
LLDB 中有两种常用方式可以实现和 GDB advance 完全一致的效果,满足你跳过参数转换中间调用、直接进入目标函数的需求:
方案1(最便捷,适配你给出的场景):使用
step into function的简写命令sif,直接指定目标函数名即可:(lldb) b main (lldb) r (lldb) sif solvePnP执行后会自动跳过所有参数类型转换的中间函数调用,直接停在
solvePnP的实现入口。方案2(更灵活,支持指定任意位置):通过一次性断点+继续执行的组合实现,效果和 GDB
advance完全对齐,支持指定函数名、代码行号、地址等任意合法位置:# 设置一次性断点,命中后自动删除,不会残留无效断点 (lldb) breakpoint set --one-shot true --name solvePnP # 继续运行直到命中断点或者当前栈帧退出 (lldb) continue
两种方案的行为都和 GDB advance 官方描述一致:不会跳过递归调用、支持指定当前栈帧外的目标位置,运行过程中如果当前栈帧退出也会自动停止。
内容的提问来源于stack exchange,提问作者ChrisZZ
相关产品推荐
相关产品推荐

