c++ - 如何让 LLDB 成功退出,等待失败?
问题描述
这是 Clang 版本的:
通过大量可能的输入以编程方式多次运行我的应用程序,我偶尔会遇到分段错误。
我希望在每个测试调用下运行,lldb
以便我可以获得回溯以进行进一步调试。如果调用在没有崩溃的情况下退出,我想lldb
自动退出,以便测试工具继续进行下一次迭代。这样我就可以在午餐时间把整个事情都关掉,只有在发生崩溃时才会中断套房。
lldb
在所有情况下自动退出的奖励积分,但如果程序崩溃,首先打印回溯。
我目前至少能够自动化初始run
命令:
lldb -o run -f $CMD -- $ARGS
解决方案
我很难找到在线命令参考,但看起来-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
推荐阅读
- php - Laravel - 将 DB::raw 的结果转换为字符串数组?
- c# - WithMaxRetry 图形 API 时间跨度和 MaxRetry
- python - 调用随机失败的外部 API
- c# - 将实体框架 DbSet 对象绑定到 DevExpres xtrareports
- data-distribution-service - 发送大尺寸数据导致`DDS_OctetsPlugin_serialize:值长度不能大于分配大小`
- angular - 无法在 Angular 上创建新项目
- flutter - 在 Flutter 中清除正文中的背景图像
- python - 随机爬山搜索
- flutter - 在屏幕上显示等待进程
- python - Pandas DataFrame 检查日期数组中的日期并返回 True/False