1

简单的问题,但我似乎无法在网上的任何地方找到答案,这真的很令人沮丧。

假设我有这个错误的代码,我正在尝试调试:

int myBug()
{
    while(1);
    return 0;
}

如果我用 LLDB 调试它并输入,print myBug()我永远不会得到任何结果(没有意外)。然而,这意味着我不能再调试,因为 LLDB 被卡住并且不能continue。有没有办法杀死print myBug()命令?到目前为止,唯一的解决方法是退出并重新启动一切 - 远非方便。

我在 Xcode 4.6.1 中使用 LLDB,我尝试了一堆按键,如 Ctrl+C、Ctrl+T,但似乎没有任何效果:(

4

1 回答 1

5

是的,在 Xcode 中没有简单的方法来中断这个表达式评估。如果您使用命令行 lldb,control-C 将按预期工作。您可以向您的进程发送信号,killall -INT appname. 您可以给 lldb 一个表达式评估超时,以微秒表示,因此五秒超时调用myBug()看起来像

(lldb) expr -t 5000000 -- myBug()
error: Execution was interrupted, reason: breakpoint 1.1.
The process has been returned to the state before expression evaluation.
(lldb)

如果这是您的工作流程中出现的问题,您可以在http://bugreport.apple.com/上的 Xcode 上提交有关此问题的错误报告。

于 2013-07-01T23:19:13.303 回答