首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置LLDB断点每10次触发一次?

如何设置LLDB断点每10次触发一次?
EN

Stack Overflow用户
提问于 2016-11-15 16:41:34
回答 2查看 955关注 0票数 5

要调试高频计时器或传感器的值,最好配置一个断点,该断点每隔x次才触发一次。做这件事最好的方法是什么?

我在Xcode中尝试了“在停止之前忽略x次”选项,但这只是第一次起作用。我可以使用LLDB命令重置此计数器吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-17 01:20:21

您可以在任何时候重置“忽略计数器”:

代码语言:javascript
复制
(lldb) break modify -i <NEW_VALUE> <BKPT_SPECIFICATION>

注意,不满足其“忽略计数”的断点不被视为命中,因此它的断点命令不会运行。因此,如果您希望每隔十分之一次自动地到达断点,只需执行以下操作:

代码语言:javascript
复制
    (lldb) break set -l 10 -i 10 -N my_bkpt
    Breakpoint 1: where = foo`main + 46 at foo.c:10, address = 0x0000000100000f5e
    (lldb) break com add
    Enter your debugger command(s).  Type 'DONE' to end.
    > break modify -i 10 my_bkpt 
    > DONE
    (lldb)

然后只要在每一站点击“继续”,你就会每10次点击断点一次。

注意,我使用了命名断点的能力( -N选项),因此我不必知道我添加的断点命令中的断点号。如果要将这些断点存储在命令文件中,这很方便,等等。

参考文献:苹果在管理断点上的文档。您还可以执行help breakpoint set命令,以获得可用选项的完整列表。

票数 3
EN

Stack Overflow用户

发布于 2016-11-15 17:24:28

我不确定您能否在lldb中定义持久变量(计数器)。您始终可以有一个全局变量,您可以使用它作为计数器助手,而只是在发行版构建中不包含它。

代码语言:javascript
复制
class BrCounter{
     static var freq = 10
} 

编辑断点并添加以下条件:

代码语言:javascript
复制
BrCounter.freq--; 
if(BrCounter.freq == 0){ 
    BrCounter.freq = 10; 
    return true; 
}else{ 
    return false; 
}

龙舌兰人:

代码语言:javascript
复制
BrCounter.freq--; if(BrCounter.freq == 0){ BrCounter.freq = 10; return true; }else{ return false; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40615222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档