1. A method for providing a binary instrumentation using a binary instrumentation tool to detect memory problems in runtime application executing on a computer system, the method comprising: examining a source code of a runtime application to identify a function having an instruction that accesses memory on the computer system, wherein the source code includes a user provided executable code (UPE), the UPE including a function having an instruction that accesses memory; generating an annotation section when compiling the source code into an executable binary code by a compiler, the annotation section including one or more compiler annotations provided by the compiler for the identified function having one or more instructions, the compiler annotations defining essential functional characteristic data related to the identified function based on examination of the one or more instructions and providing guidelines for inserting checker codes, the generated annotation section associated with the executable binary code; defining and inserting a checker code into the original function code of the identified function to obtain a modified function code based on the guidelines provided by compiler annotations in the annotation section associated with the function, the checker code defined by the program error detector (PED); and generating a modified executable binary code of the runtime application by replacing the original function code of the identified function with the corresponding modified function code, the modified executable binary code generated by the PED based on the annotations associated with the identified function, the modified executable binary code invoking a checker upon execution of the appropriate function, the checker enabling efficient detection of program memory errors associated with the identified function, wherein the operations of examining, generating and defining are performed by a processor of a computer.
1. A method for providing a binary instrumentation using a binary instrumentation tool to detect memory problems in runtime application executing on a computer system, the method comprising: examining a source code of a runtime application to identify a function having an instruction that accesses memory on the computer system, wherein the source code includes a user provided executable code (UPE), the UPE including a function having an instruction that accesses memory; generating an annotation section when compiling the source code into an executable binary code by a compiler, the annotation section including one or more compiler annotations provided by the compiler for the identified function having one or more instructions, the compiler annotations defining essential functional characteristic data related to the identified function based on examination of the one or more instructions and providing guidelines for inserting checker codes, the generated annotation section associated with the executable binary code; defining and inserting a checker code into the original function code of the identified function to obtain a modified function code based on the guidelines provided by compiler annotations in the annotation section associated with the function, the checker code defined by the program error detector (PED); and generating a modified executable binary code of the runtime application by replacing the original function code of the identified function with the corresponding modified function code, the modified executable binary code generated by the PED based on the annotations associated with the identified function, the modified executable binary code invoking a checker upon execution of the appropriate function, the checker enabling efficient detection of program memory errors associated with the identified function, wherein the operations of examining, generating and defining are performed by a processor of a computer. 11. The method for providing a binary instrumentation using a binary instrumentation tool to detect memory problems in runtime application executing on a computer system of claim 1 , wherein the essential functional characteristic data associated with the function include function identification, boundaries of the function, list of all possible jump locations of the function, location of the function within a compiled binary file, reference to function location from code or data, information on incoming and outgoing function arguments, references to functions from non-executable code (data).