2013-07-01 39 views
1

简单的问题,但我似乎无法在网上找到答案,它真的令人沮丧。lldb - 我如何杀死无限循环中的命令

假设我有这个bug的代码我试图调试:

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

如果我有LLDB调试这一点,并键入print myBug()我没有得到任何结果,永远(没有惊喜)。但这意味着我不能再调试,因为LLDB卡住了,不能continue。有没有办法杀死print myBug()命令?到目前为止唯一的解决方法是退出并重新启动一切 - 远非易事。

我使用LLDB在Xcode 4.6.1,我已经尝试了一堆如Ctrl + C,Ctrl + T键的按键,但似乎没有任何工作:(

+0

Ctrl-Z,也许? – 2013-07-01 10:55:12

+1

我只是打了暂停按钮。 –

+0

@ H2CO3:试过了,不起作用。 – OLL

回答

5

呀,从在Xcode有ISN如果您使用的是命令行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) 

,就可以提交关于T A bug报告他在Xcode http://bugreport.apple.com/,如果这是你的工作流程中出现的东西。

+0

Upvote for timeout-option。 – mkalmes