假设我创建了两个断点,2 和 3。断点 3 位于第 10 行,该断点在程序中被频繁执行。如何配置 3 仅在 2 被击中一次后才中断?
举个简单的例子:
void bp2() { };
void bp1() { bp2(); }
int main()
{
bp2();
bp1();
return 0;
}
我们可以创建一个断点,仅当通过 bp1 调用 bp2 时才会触发,如下所示:
break bp1
break bp2
commands 1
silent
enable 2
c
end
commands 2
disable 2
end
disable 2
我想补充一点,您还可以在另一个断点的
command
中创建一个新断点。
b main.c:12
command 1
b main.c:10
disable 1
end
但是,我建议一般使用 @matt 的 方法,因为它更干净,并且减少了混乱的空间。
谷歌引导我来到这里。 @user35915's的回答对我帮助很大,在这里添加了详细信息。希望这可以帮助其他人。
设置这两个命令
command 2
>enable b 3
>c
command 3
>disable b 3
>c
也就是说,当2被击中时,启用3,然后继续。当击中 3 时,禁用 3,然后继续。
后一个命令中的
disable b 3
确保启用时最多击中 3 次。
将
continue
附加到命令中可以让我免于手动输入 c
。如果需要一些详细的观察,我会在c
之前添加命令,甚至删除c
(以在那里停止程序)。像这样,
command 3
>disable b 3
>bt
>c