ソースをステップ実行します。関数呼び出しにはステップインします。
このコマンドは、1 行のソースコードを実行します。実行される次の行に関数呼び出しが含まれる場合、デバッガーはその関数にステップインし、最初の実行文で停止します。
expr を指定した場合、デバッガーはこの式を、step コマンドを実行する回数を指定する正の整数として評価します。expression は、現在のコンテキストで有効な任意の式です。
次の例は、5 つの step コマンドで C++ プログラムの実行を続けます。
GDB モード:
(idb) list +0,+4 151 Node* currentNode = _firstNode; 152 while (currentNode->getNextNode()) 153 currentNode = currentNode->getNextNode(); 154 currentNode->setNextNode(node); (idb) step 152 while (currentNode->getNextNode()) (idb) step Node::getNextNode (this=0x805c500) at src/x_list.cxx:81 81 Node* Node::getNextNode() {return _nextNode; } (idb) step 81 Node* Node::getNextNode() {return _nextNode; } (idb) step List<Node>::append (this=0xbfffcbe0, node=0x805c510) at src/x_list.cxx:152 152 while (currentNode->getNextNode()) (idb) step 154 currentNode->setNextNode(node);
IDB モード:
(idb) list $curline:4 > 151 Node* currentNode = _firstNode; 152 while (currentNode->getNextNode()) 153 currentNode = currentNode->getNextNode(); 154 currentNode->setNextNode(node); (idb) step stopped at [void List<Node>::append(class Node* const):152 0x0804ae75] 152 while (currentNode->getNextNode()) (idb) step stopped at [class Node* Node::getNextNode(void):81 0x08051be5] 81 Node* Node::getNextNode() {return _nextNode; } (idb) step stopped at [class Node* Node::getNextNode(void):81 0x08051bec] 81 Node* Node::getNextNode() {return _nextNode; } (idb) step stopped at [void List<Node>::append(class Node* const):152 0x0804ae81] 152 while (currentNode->getNextNode()) (idb) step stopped at [void List<Node>::append(class Node* const):154 0x0804aebf] 154 currentNode->setNextNode(node);