简单的问题,但我似乎无法在网上任何地方找到答案,这真的令人沮丧。
假设我有这个错误的代码我正在尝试调试:
int myBug()
{
while(1);
return 0;
}
如果我用LLDB调试这个并输入print myBug()
我没有得到任何结果(没有惊喜)。但是,这意味着我无法再调试,因为LLDB卡住而且不能continue
。有没有办法杀死print myBug()
命令?到目前为止,唯一的解决方法是放弃并重新启动所有内容 - 远非方便。
我在Xcode 4.6.1中使用LLDB,我尝试了一些按键,如Ctrl + C,Ctrl + T,但似乎没有任何工作:(
答案 0 :(得分: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上提交有关此问题的错误报告。