当前位置: 首页 > 工具软件 > Next3 > 使用案例 >

linux下gdb调试 | next, nexti, step, stepi单步调试详解

谭坚诚
2023-12-01

在gdb中,有next, nexti, step, stepi等指令来单步调试程序,他们功能各不相同,区别在于单步的“跨度”上。

next 单步到程序源代码的下一行,不进入函数。
nexti 单步一条机器指令,不进入函数。
step 单步到下一个不同的源代码行(包括进入函数)。
stepi 单步一条机器指令。

可以两两分类来记住:

  1. next和nexti(即n和ni)是下一条,不进入函数内部,比如说在某一行发生了函数调用,next/nexti就继续到下一行。next是在源码层面的下一行,而nexti就是机器指令层面的,单步到下一个机器指令。

  2. step和stepi(即s和si)就是单步步入,进入函数内部,比如说在某一行发生了函数调用,step/stepi就会进入函数体内部,把函数体执行一遍,再返回执行下一条指令。同理,step是在源码层面的操作指令,stepi是在机器指令层面的。

 类似资料: