 Some debuggers have the ability to modify program state while it is running.It may also be possible to continue execution at a different location in the program to bypass a crash or logical error.The same functionality which makes a debugger useful for correcting bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, and other software protection features.