lldb 中函数 return 值的条件断点?

Conditional breakpoint on a funtion's return value in lldb?

我搜索过但找不到好的解决方案。这可能吗,为什么?

LLDB 不支持可以 运行 调试对象然后执行进一步步骤的断点命令。当被调试者再次启动时,断点命令终止。所以你不能使用断点命令来做到这一点。这是一个将在某个时候修复的限制,但这不是一项微不足道的工作。

但是,lldb 还有一个 "scripted step" 功能,允许您制作自己的自定义步骤操作。您可以使用它来解决此限制。示例文件中的 FinishPrintAndContinue:

http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/scripted_step.py

几乎就是你想要的。您只需要更改继续检查 return 值(使用 SBThread::GetStopReturnValue),然后根据结果继续或停止。然后你可以在有问题的函数上放置一个断点并添加一个命令 运行s 这个花哨的步骤。