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 回目の呼び出しで値がおかしくなる事が分かっている場合に上のようにデバッグする。