如何设置每 10 次触发一次 LLDB 断点?
How can I setup an LLDB breakpoint firing every 10th time?
要调试高频计时器或传感器的值,配置一个仅每 x 次触发的断点会很有用。实现此目标的最佳方法是什么?
我尝试了 Xcode 中的 "Ignore x times before stopping" 选项,但这只是第一次有效。我可以使用 LLDB 命令重置此计数器吗?
我不确定您是否可以在 lldb 中定义持久变量(计数器)。您始终可以拥有一个用作计数器助手的全局变量,而只是不将其包含在发布版本中。
class BrCounter{
static var freq = 10
}
编辑断点并添加以下条件:
BrCounter.freq--;
if(BrCounter.freq == 0){
BrCounter.freq = 10;
return true;
}else{
return false;
}
一线:
BrCounter.freq--; if(BrCounter.freq == 0){ BrCounter.freq = 10; return true; }else{ return false; }
您可以随时重置忽略计数器:
(lldb) break modify -i <NEW_VALUE> <BKPT_SPECIFICATION>
注意,不满足其 "ignore count" 的断点不被视为命中,因此其断点命令不会得到 运行。所以如果你想在你自动命中断点的时候每十分之一停止一次,只需要这样做:
(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)
然后在每次停止时点击"continue",每10次就会遇到一次断点。
请注意,我使用了命名断点的功能(-N
选项),因此我不必知道我添加的断点命令中的断点编号。如果你打算将这些断点存储在命令文件等中,那将很方便
参考:Managing breakpoints 上的 Apple 文档。您还可以执行 help breakpoint set
命令以获得可用选项的完整列表
要调试高频计时器或传感器的值,配置一个仅每 x 次触发的断点会很有用。实现此目标的最佳方法是什么?
我尝试了 Xcode 中的 "Ignore x times before stopping" 选项,但这只是第一次有效。我可以使用 LLDB 命令重置此计数器吗?
我不确定您是否可以在 lldb 中定义持久变量(计数器)。您始终可以拥有一个用作计数器助手的全局变量,而只是不将其包含在发布版本中。
class BrCounter{
static var freq = 10
}
编辑断点并添加以下条件:
BrCounter.freq--;
if(BrCounter.freq == 0){
BrCounter.freq = 10;
return true;
}else{
return false;
}
一线:
BrCounter.freq--; if(BrCounter.freq == 0){ BrCounter.freq = 10; return true; }else{ return false; }
您可以随时重置忽略计数器:
(lldb) break modify -i <NEW_VALUE> <BKPT_SPECIFICATION>
注意,不满足其 "ignore count" 的断点不被视为命中,因此其断点命令不会得到 运行。所以如果你想在你自动命中断点的时候每十分之一停止一次,只需要这样做:
(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)
然后在每次停止时点击"continue",每10次就会遇到一次断点。
请注意,我使用了命名断点的功能(-N
选项),因此我不必知道我添加的断点命令中的断点编号。如果你打算将这些断点存储在命令文件等中,那将很方便
参考:Managing breakpoints 上的 Apple 文档。您还可以执行 help breakpoint set
命令以获得可用选项的完整列表