gpt4 book ai didi

gdb - 忽略但计算 lldb/gdb 中的断点命中数

转载 作者:行者123 更新时间:2023-12-03 08:16:56 24 4
gpt4 key购买 nike

我有两个断点AB。我想计算在 B 被命中之前发生了多少次 A 实例。问题是 A 出现了很多次(>1000),所以我无法手动继续和迭代。 A 也可能发生在 B 之后,因此我无法完全运行程序来找出命中计数。有没有自动的方法来做到这一点?

最佳答案

您可以通过 A 处的自动继续断点和断点 B 上的命令轻松完成此操作。在最简单的方法中,A 上的断点如下所示:

break set <HoweverYouSpecifyA> --auto-continue 1 -N BreakpointA

那么 B 上的断点将是:

break set <HoweverYouSpecifyB> -C "break list BreakpointA" -C "break disable BreakpointA" --one-shot

break list BreakpointA 输出将显示当您点击 B 时 A 的点击计数,这正是您想知道的。通过在点击 B 时禁用 A,A 的命中计数将保持在点击 B 时的计数,因此您应该能够在此之后的任何时候检查它(直到重新运行)。

当我像这样做一个小断点两步时,我喜欢使用命名断点,否则你必须使用第一个断点的 ID,并且它可以根据你的顺序在不同的运行中发生变化。设置断点。

我还将断点 B 设置为一次性断点,因为您只是使用它来卡住 A 的命中计数,因此只需命中一次。如果更方便的话你也可以让B自动继续,然后在程序退出时读出A的命中计数。

如果你想变得更有趣,你可以使用 B 的 Python 回调,并从 A 获取命中计数并报告你想要的结果。这需要更多工作,但更容易控制 Python 的输出格式...

关于gdb - 忽略但计算 lldb/gdb 中的断点命中数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69092891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com