One of InstantC's main focuses is automatic error detection. As InstantC loads your program, it parses the code, compiles it, and builds complete tables of information about the program's files and source elements. As a result, InstantC can check for errors and inconsistencies in ways conventional compilers can't. At run time, it checks for many more errors than traditional tools, even those specialized tools that focus on tricky areas like memory allocation problems.
As InstantC compiles and links your code, a syntax checker looks for compilation errors. If it finds any, InstantC invokes the editor to show you the problem code¨with the caret marking the error location and displays a clear error message in the status bar. You can then immediately fix the problem and continue compilation. The syntax checker also makes sure that the code you are presently compiling does not conflict with code in other source files. For example, if you have defined a function in one file and called it in another, InstantC checks to make sure that the call uses the correct number, order, and type of arguments, as specified by the definition. If the syntax checker finds an inconsistency, InstantC automatically invokes the editor to display the offending function call, with the caret marking the location of the error.
InstantC detects these intermodule errors:
The InstantC run-time checker checks for errors whenever you execute a program, function, or expression. If it detects an error, such as a call to an undefined function, the run-time checker will interrupt program execution, and InstantC will display the offending code along with an error message. You don't have to do anything special to make InstantC look for run-time errors. Just execute some code; InstantC is always "in debug mode."
InstantC traps far more run-time errors than any other debugger does, including the worst errors: the ones that don't cause a failure until your customer runs the product. It catches out-of-bounds array references, invalid function pointers, and attempts to dereference null or uninitialized pointers. InstantC also traps protected-mode errors, such as writing into code or executing data, and prevents you from overwriting the return address on the stack.
InstantC will even catch errors in code that you loaded in object form rather than as source, and will display reconstructed assembly code for the function that contains the error.
Every time InstantC traps a run-time error, you save several minutes to hours of debugging time, and you also prevent an embarrassing bug from reaching your users.This list shows the kinds of run-time errors InstantC detects:
When InstantC traps a syntax or run-time error, it also helps you fix it, by telling you exactly what the problem is. When it finds an error, InstantC displays the code, marking the exact location of the error, and displays a clear, context-specific error message in the status bar. There are over 800 error messages in InstantC.
[Previous] * [Tour Index] * [Next]
[Back to the InstantC Home Page]