The techniques you use to debug a program when you encounter a protection violation or an RTS error depend on how the program is loaded or built. For example, if a program is built as an operating system executable file (such as an .exe file or a .dll file), the operating system loads the program and uses special privileges to partition memory for different usages and trap inappropriate references. For example it might split data and procedures and trap attempts to execute data or write over procedure code. In general, the run-time system cannot use the operating system's special privileges to load the COBOL program into protected areas. Instead, where appropriate, the COBOL system sets up its own COBOL traps in conjunction with the operating system general protection violation traps.