Some of the debug tools that need to be used to develop a better program are discussed. Some of the variations include watch variables in debuggers and control panels for graphical environments, such as National Instruments' LabVIEW. Some programmers take advantage of conditional compilation so that debugging support can be maintained with the program. Many debuggers provide advanced watch windows and macro support that are designed to expose the interior of a running application. The hardware printf is another tool that takes advantage of unused hardware resources, such as I/O ports that can be hooked to a logic analyzer to deliver a hardware trace facility. The Eclipse project's Debugger Services Framework (DSF) has emerged as another significant debug tool for a program.