首页 > 解决方案 > 如何让 LLDB 成功退出,等待失败?

问题描述

这是 Clang 版本的:


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

我希望在每个测试调用下运行,lldb以便我可以获得回溯以进行进一步调试。如果调用在没有崩溃的情况下退出,我想lldb自动退出,以便测试工具继续进行下一次迭代。这样我就可以在午餐时间把整个事情都关掉,只有在发生崩溃时才会中断套房。

lldb在所有情况下自动退出的奖励积分,但如果程序崩溃,首先打印回溯。

我目前至少能够自动化初始run命令:

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

标签: c++macoslldb

解决方案


我很难找到在线命令参考,但看起来-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

推荐阅读