What is the difference between ELF and COFF?
Executable and Linkable Format (ELF) has more debugging capabilities than Common Object File Format (COFF). The ELF/DWARF combination is richer in information than the older COFF. The ELF overcomes the limitations of the older COFF, such as the absence of a standard representation of the long long data type. From a user's perspective, the primary advantage of the tool's support of ELF/DWARF derives from the use of DWARF, which provides a method for allowing the compiler to communicate complex run-time debugging information to the debugger. Therefore, in MPLAB® X IDE you should see more accurate source-line tracking and watch-window variables, even when enabling some optimizations.