Conditional breakpoints (C++)

Showcase

#include <iostream>

int main() {
    for (int i = 0; i < 10; ++i) {
        std::cout << "i = " << i << std::endl;
    }
    return 0;
}

Debugging

$ g++ -g main.cpp
$ gdb a.out
(gdb) b main.cpp:5 if i == 5
Breakpoint 1 at 0xa24: file main.cpp, line 5.
(gdb) r
Starting program: /workspace/a.out
i = 0
i = 1
i = 2
i = 3
i = 4

Breakpoint 1, main () at main.cpp:5
5	        std::cout << "i = " << i << std::endl;
(gdb) c
Continuing.
i = 5
i = 6
i = 7
i = 8
i = 9
[Inferior 1 (process 33) exited normally]
(gdb) q