"вернуть" из метода во время шага?

Я хотел бы выйти из текущего метода, который я выполняю.

-(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 до следующего основного релиза.