software breakpoint
A breakpoint made by temporarily writing a special trap instruction over the program's code at the chosen spot.
A software breakpoint replaces the first byte(s) of the target instruction with a breakpoint instruction (x86-64 int3, 0xCC; ARM64 brk; RISC-V ebreak); executing it raises a debug trap the debugger receives, which restores the original bytes, rewinds the PC where needed and single-steps the real instruction before re-inserting the trap. There is no limit on how many can be set.
Examples
On x86-64 a debugger writes the 1-byte
int3(0xCC) over an instruction's first byte; on ARM64 it writes abrkinstruction.
See also