stepi

Step forward in assembler instructions, into any function calls.

Syntax

stepi [expr]

Parameters

expr

A numeric expression.

Description

This command executes a machine instruction. When the instruction contains a function call, the command steps into the function being called.

For multithreaded applications, use the stepi command to step the current thread one machine instruction while putting all other threads on hold.

If you specify expr, the debugger evaluates the expression as a positive integer that specifies the number of times to execute the stepi command. The expression can be any expression that is valid in the current context.

Example

The following example shows stepping by instruction (stepi). To see stepping over calls, see the example of the next command.

GDB Mode:

(idb) x /8i $pc
0x0804ae6d <append+25>: movlr 0x8(%ebp), %eax 
0x0804ae70 <append+28>: movlr (%eax), %eax 
0x0804ae72 <append+30>: movl %eax, -16(%ebp) 
0x0804ae75 <append+33>: pushl %edi 
0x0804ae76 <append+34>: movlr -16(%ebp), %eax 
0x0804ae79 <append+37>: movl %eax, (%esp) 
0x0804ae7c <append+40>: call 0x08051be2 <getNextNode> 
0x0804ae81 <append+45>: addl $0x4, %esp 
(idb) stepi
0x0804ae70 151 Node* currentNode = _firstNode; 
(idb) x /1i $pc
0x0804ae70 <append+28>: movlr (%eax), %eax 
(idb) stepi $count - 1
0x0804ae70 151 Node* currentNode = _firstNode; 
(idb) x /1i $pc
0x0804ae70 <append+28>: movlr (%eax), %eax 
(idb) stepi
0x0804ae72 151 Node* currentNode = _firstNode; 
(idb) x /1i $pc
0x0804ae72 <append+30>: movl %eax, -16(%ebp) 

IDB Mode:

(idb) $curpc/8i
void List<Node>::append(class Node* const): src/x_list.cxx 
*[line 151, 0x0804ae6d] append(class Node* const)+0x19: movlr 0x8(%ebp), %eax 
[line 151, 0x0804ae70] append(class Node* const)+0x1c: movlr (%eax), %eax 
[line 151, 0x0804ae72] append(class Node* const)+0x1e: movl %eax, -16(%ebp) 
[line 152, 0x0804ae75] append(class Node* const)+0x21: pushl %edi 
[line 152, 0x0804ae76] append(class Node* const)+0x22: movlr -16(%ebp), %eax 
[line 152, 0x0804ae79] append(class Node* const)+0x25: movl %eax, (%esp) 
[line 152, 0x0804ae7c] append(class Node* const)+0x28: call getNextNode 
[line 152, 0x0804ae81] append(class Node* const)+0x2d: addl $0x4, %esp 
(idb) stepi
stopped at [void List<Node>::append(class Node* const):151 0x0804ae70] append(class Node* const)+0x1c: movlr (%eax), %eax 
(idb) stepi $count - 1
stopped at [void List<Node>::append(class Node* const):151 0x0804ae70] append(class Node* const)+0x1c: movlr (%eax), %eax 
(idb) stepi
stopped at [void List<Node>::append(class Node* const):151 0x0804ae72] append(class Node* const)+0x1e: movl %eax, -16(%ebp) 

See Also


Submit feedback on this help topic

Copyright © 1996-2010, Intel Corporation. All rights reserved.