 A "trap" occurs when the program cannot normally continue because of a programming bug or invalid data.For example, the program might have tried to use an instruction not available on the current version of the CPU or attempted to access unavailable or protected memory.When the program "traps" or reaches a preset condition, the debugger typically shows the location in the original code if it is a source-level debugger or symbolic debugger, commonly now seen in integrated development environments.