GDB において特定の回数関数が呼ばれたら break する

GDB において特定の回数関数が呼ばれたら break する方法。

# break point を表示。番号を知る
(gdb) info b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x0000000000413fab in scheme::VM::runLoop(scheme::Object*, __jmp_buf_tag*, bool) at src/VM-Run.cpp:982
2       breakpoint     keep y   0x000000000040e240 in scheme::VM::tryJitCompile(scheme::Object) at src/VM.cpp:957
	breakpoint already hit 3 times
# 2番の breakpoint において 121 回は通過し 122 回目で break するように指示
(gdb) ignore 2 121
Will ignore next 121 crossings of breakpoint 2.
(gdb) r

事前に 122 回目の呼び出しで値がおかしくなる事が分かっている場合に上のようにデバッグする。