lldb - 有没有办法不在断点上停止并打印它们已被击中

问题描述 投票:0回答:1

所以我使用 Qt Creator 和 LLDB 作为调试器。 为了调试东西,我添加了断点,当代码到达断点时它会停止,我可以看到反向跟踪和所有内容,这很有用。但是,有时我不想停止,我只对是否命中断点感兴趣,或者我想检查那里的值。 我通常通过添加调试消息来完成此操作,但这通常需要花费大量时间来重新编译项目并重新运行场景。 我想知道是否有更好的方法来做到这一点,使用调试器,最好是 LLDB。

debugging lldb
1个回答
3
投票

所有

break set
命令都带有
--auto-continue
选项(一个字母:
-G
),该选项将指示 lldb 在停止断点(并运行其任何命令)后继续。

您可以使用

break command add
命令或在
-C
命令中添加任意数量的
break set
选项,在命中断点时运行 lldb 命令(例如,进行回溯或打印一些局部变量)。您还可以将 Python 实现的回调添加到断点,如下所述:

https://lldb.llvm.org/use/python-reference.html#running-a-python-script-when-a-breakpoint-gets-hit

如果您需要做一些更奇特的事情来在遇到断点时收集报告。

如果您想编辑现有断点,您可以执行以下操作:

breakpoint modify <break_point_id> -G true <bkpt-number>

如果不指定断点编号,lldb 将作用于您设置的最后一个断点。

© www.soinside.com 2019 - 2024. All rights reserved.