在 GDB 中使用 step 和 next 命令分步调试程序非常的方便,但使用时可能会遇到一些问题,那么会遇到哪些问题呢?例如:
上述的问题是我们使用单步调试程序时会经常遇到的,使用 until 命令和 finish 命令就可以完美的解决这些问题。
until 命令的含义是执行到程序的指定位置,相关的命令格式和使用方式:
location 表示程序中的位置,可以是行号、函数名、一个地址,与 break 命令的使用方式相同。实例:
第一条命令表示程序运行到第 16 行;第二条命令表示程序运行到 func() 函数入口处;第三条命令表示程序运行到地址为 0x1234 处。
until 命令不添加参数的使用方式和 step 命令不加参数的使用效果相同,这个命令主要解决的就是程序分步调试阶段遇到循环语句,实例:
1.使用 step 调试程序:
程序会进入循环,循环50次。
2.使用until命令调试程序:
程序跳过循环。
finish命令表示的含义是返回到上层函数。就是直接运行完调用函数剩余的部分,返回到上层函数。使用格式:
这个命令就是帮助我们解决将被调用函数的剩余部分执行完成。