LLDB重启过程没有用户输入

时间:2015-06-03 16:17:23

标签: debugging lldb

我正在尝试调试LLDB中的并发程序并且遇到seg错误,但不是每次执行都是如此。我想一遍又一遍地运行我的过程,直到碰到一个seg故障。到目前为止,我有以下内容:

b exit
breakpoint com add 1
Enter your debugger command(s).  Type 'DONE' to end.
> run 
> DONE

我觉得讨厌的部分是,当我到达exit函数并点击我的断点时,当执行run命令时,我从LLDB得到以下提示:

There is a running process, kill it and restart?: [Y/n] 

我想自动重启该过程,而不必每次都手动输入Y。有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

您可以使用kill手动终止上一个实例 - 这不会提示 - 然后run命令也不会提示。

或者:

(lldb) settings set auto-confirm 1

将为所有lldb查询提供默认(大写)答案。

或者如果您有Xcode 6.x(或当前的TOT svn lldb),您可以使用lldb驱动程序的批处理模式:

$ lldb --help
...
       -b 
       --batch 
            Tells the debugger to running the commands from -s, -S, -o & -O,
            and then quit.  However if any run command stopped due to a signal
            or crash, the debugger will return to the interactive prompt at the
            place of the crash.

例如,您可以在shell中编写脚本,运行:

lldb -b -o run

在一个循环中,如果运行以崩溃而不是正常退出结束,这将停止。在某些情况下,这可能更容易做到。