单步执行一行(步入调用)。对于多线程程序,步过函数调用时,为了避免死锁,会在该函数调用期间隐式恢复所有线程。非活动线程无法单步执行。
单步执行 n 行(步入调用)。
向下单步执行并步出当前函数。
单步执行时传递指定信号。如果该信号存在信号处理程序,并且使用 -g 选项编译了该信号处理程序,则步入该信号处理程序。
单步执行指定线程。不适用于 step up。
单步执行指定 LWP。步过函数时,不隐式恢复所有 LWP。
尝试步入从当前源代码行调用的 function。如果未指定 function,则步入上一个调用的函数,这有助于避免出现过长的 step 命令和 step up 命令序列。例如,上一个函数为:
f()->s()-t()->last();
last(a() + b(c()->d()));
其中:
n 是要单步执行的行数。
signal 是信号名。
thread_id 是线程 ID。
lwp_id 是 LWP ID。
function 是函数名。
只有指定显式 lwp_id 时,通用 step 命令的死锁避免措施才不起作用。
在执行 step to 命令时,如果尝试步入上一个汇编调用指令或步入当前源代码行中的函数(如果指定),则调用可能因条件分支而无法进行。在不执行调用或当前源代码行中没有函数调用的情况下,step to 命令会步过当前源代码行。使用 step to 命令时,需要特别注意用户自定义的运算符。
有关机器级步进信息,另请参见stepi 命令。