# GDB Breakpoints **Breakpoints** pause execution so you can inspect state. Set at a line, function, or condition. ```bash (gdb) break main # breakpoint at function 'main' (gdb) break file.c:10 # breakpoint at line 10 in file.c (gdb) break file.c:10 if x > 5 # conditional: pause only if x > 5 (gdb) info breakpoints # list all breakpoints (gdb) delete 1 # delete breakpoint 1 (gdb) disable 1 # disable (don't stop, keep it) (gdb) enable 1 # enable (gdb) continue # resume from breakpoint ``` When a breakpoint hits, GDB shows the line and pauses. You can then inspect variables, print expressions, step through code, etc. Conditional breakpoints are powerful: `break file.c:10 if x > 5` pauses only when the condition is true. Avoids stopping hundreds of times if the issue is only when `x` is large. Breakpoint numbers start at 1 (shown by `info breakpoints`). Reference by number to delete, disable, or enable. Temporarily disable instead of delete if you might need the breakpoint later. Watch points (`watch variable`) pause when a variable changes value—useful for finding where a variable gets corrupted. Set with `watch x` (pause when `x` changes). Display commands (`display x`) print a variable every time execution pauses. Useful for monitoring value changes across stepping. Clear all breakpoints: `delete` (without arguments).