"вернуть" из метода во время шага?
Я хотел бы выйти из текущего метода, который я выполняю.
-(void)helloWorld {
NSLog(@"Hello");
// I would like to return here, so that "World" isn't printed.
NSLog(@"World");
}
Я пробовал следующее, но не повезло.
(lldb) expr return
<no result>
Возможно ли это с lldb?
Ответы
Ответ 1
Когда вы выполняете отладку с помощью Xcode и когда ваша программа приостановлена в точке останова, вы можете перетащить маленькую зеленую стрелку на любую другую строку функции. Например. в следующем коде:
![Xcode breakpoint]()
если я хочу пропустить NSLog(@"B")
, я могу просто перетащить зеленую стрелку из строки 20 в строку 23, что означает, что функция просто "вернется" из любого места, которое я хочу.
Ответ 2
К сожалению, в Xcode 4.5.x не существует способа принудительного возврата из функции. В текущих источниках lldb на http://lldb.llvm.org/ есть новая добавленная команда thread return
, которая делает то, что вы хотите - она включает в себя возможность указать возвращаемое значение функции. Однако это не будет в Xcode до следующего основного релиза.