如何使LLDB成功退出,等待失败?

时间:2018-10-31 14:26:19

标签: c++ macos lldb

这是以下语言的Clang版本:


通过大量可能的输入以编程方式运行我的应用程序多次,我偶尔遇到分段错误。

我希望每个测试调用都可以在lldb下运行,以便获得回溯信息以进行进一步的调试。如果调用退出而没有崩溃,我希望lldb自动退出,以便测试工具继续进行下一次迭代。这样,我就可以在午餐时间把整个事情搁置一旁,并且只有在某些东西崩溃时才让套房中断。

在所有情况下自动退出lldb的加分点,但是如果程序崩溃,则首先打印回溯记录。

我目前至少可以使最初的run命令自动化:

lldb -o run -f $CMD -- $ARGS

1 个答案:

答案 0 :(得分:1)

我很难找到一个在线命令参考,但是看起来-batch命令行选项将使您获得基本的“成功退出/失败提示”行为。

对于回溯在失败时自动退出,我认为您需要--source-on-crash选项...

-K <filename>  
--source-on-crash <filename>  
    When in batch mode, tells the debugger to source this file of lldb
    commands if the target crashes.

因此,使用类似...的命令创建命令文件。

echo -e 'bt\nquit' > lldb.batch

然后作为...调用

lldb --batch -K lldb.batch -o run -f $CMD -- $ARGS