“Traditional” Debugging Techniques
Debugging a program – finding the errors and correcting them – can be a slow process in solutions without a run-time debugger. Without a debugger you may have to resort to different techniques like:
- There’s no way to determine if your program is executing the intended logic. So you add code to play different tones/sounds to your program as it executes different “blocks” of code. You determine from the sound what is being executed within your program.
- If your robot platform supports a display device (which could be a serial link to your PC or an LCD display on the robot) then you would have to add “print” statements to your program code at various points in your program. By examining the display, you can (hopefully) determine what’s happened in your program's execution by the display.
Both of the above techniques are available in ROBOTC. However, a real-time debugger eliminates the need to resort to them. There’s no need to add code for debugging to your program. A built-in debugger provides better functionality without ever having to modify your source code!
There is also a built-in Debug Stream that you can use to keep track of your program from behind the scenes. For example, you could print a message to the Debug Stream when you enter and exit loops, functions, etc. Then you can view the cached Debug Stream to help in the debugging process.
|void AddToDatalog(const long data)|
|Adds an entry to the datalog.
|Boolean flag to indicate whether data files should be hidden or shown in the NXT GUI.
|The current size allocated to the datalog.
|Maximum number of saved datalog files (DATAnnnn.RDT) allowed on a NXT.
|Maximum size (in 100 byte units) of all datalog files saved on the NXT.
|const word nUsedDatalogBytes|
|The number of bytes currently containing data in the datalog.
|Saves the existing datalog from RAM memory into a NXT file named "DATAnnnn.rdt" where 'nnnn' is numeric and increases by one on every save.