20. The system for providing binary instrumentation using a binary instrumentation tool to detect memory problems in runtime application executing on a computer system of claim 14 , wherein the program errors that may be detected include any one of uninitialized variable usage, memory leaks along with the corresponding location, array access violation, stack access violation, access beyond stack bounds, access beyond array bounds, incorrect parameter for function calls, unallocated memory read, double free memory, free memory read, partially initialized data access.
14. A system for providing binary instrumentation using a binary instrumentation tool to detect memory problems in runtime application executing on a computer system, the system comprising: a processor for providing binary instrumentation; a compiler to compile the source code of the runtime application into a plurality of compiled objects, the runtime application having a function with an instruction that accesses memory, the compiler further configured to identify a function with instructions that access memory and to generate an annotation section, the annotation section including one or more compiler annotations associated with the identified function, the compiler annotations defining essential functional characteristic data related to the identified function based on examination of the instruction and providing guidelines, wherein the source code includes a user provided executable code (UPE), the UPE including a function having an instruction that accesses memory, wherein the UPE is not associated with any compiler annotations; a link editor to assemble the compiled objects generated by the compiler into an executable binary code of the runtime application, the generated annotation section associated with the executable binary code; and a program error detector configured to define and insert a checker code into the identified function to obtain a modified function code based on guidelines provided by compiler annotations in the annotation section associated with the identified function and to generate a modified executable binary code by replacing a original function code for the function in the runtime application having instructions that access memory with the modified function code, the checker code invoking a checker upon execution of the corresponding function in the modified executable binary code, wherein the invoked checker efficiently detects program memory error during execution of the runtime application.