I have found an Open Source file compare program called WinMerge to be very useful in debugging EFS code. The latest version of WinMerge is available at http://winmerge.org.
Two examples of how WinMerge can be used for debugging EFS are:
1) After making several changes to EFS code, compare the changed and unchanged versions of the code before testing. Intentional and unintentional changes will be highlight in two vertical panes. Under "Edit" you can select "Highlight Line Word Diff" or "Highlight Line Char Diff". I have found the latter to be more useful for EFS.
WinMerge handles DOS (CRLF), UNIX (CR) and MAC (LF) text file formats. Under "File" select "Format For" then DOS or MAC depending on how your editor terminates text lines.
2) The reloadEFS() function forces the current EFS script to be reloaded by the chart. Values set in any variables external to the main() function will be preserved during the reload process so the programmer must re-initialize these variables. If the Var statements and the reload re-initialization get out of sync it creates a bug that is very hard to find. The following procedure will make finding these errors easy:
a) Copy the var statements into a file named Var.txt. Edit this file deleting "var " from the beginning of each line.
b) Copy the reload re-initialization statements into a file named Reload.txt.
c) Run WinMerge and select the files Var.txt and Reload.txt. The differences will be immediately apparent.
Two examples of how WinMerge can be used for debugging EFS are:
1) After making several changes to EFS code, compare the changed and unchanged versions of the code before testing. Intentional and unintentional changes will be highlight in two vertical panes. Under "Edit" you can select "Highlight Line Word Diff" or "Highlight Line Char Diff". I have found the latter to be more useful for EFS.
WinMerge handles DOS (CRLF), UNIX (CR) and MAC (LF) text file formats. Under "File" select "Format For" then DOS or MAC depending on how your editor terminates text lines.
2) The reloadEFS() function forces the current EFS script to be reloaded by the chart. Values set in any variables external to the main() function will be preserved during the reload process so the programmer must re-initialize these variables. If the Var statements and the reload re-initialization get out of sync it creates a bug that is very hard to find. The following procedure will make finding these errors easy:
a) Copy the var statements into a file named Var.txt. Edit this file deleting "var " from the beginning of each line.
b) Copy the reload re-initialization statements into a file named Reload.txt.
c) Run WinMerge and select the files Var.txt and Reload.txt. The differences will be immediately apparent.