A method, an apparatus, and a computer program product are disclosed for
detecting memory-related errors in a computer program during compiling of
the computer program. In the method, static analysis is performed upon a
computer program. One or more conditions in the computer program are
computed based on the static analysis. Each condition is a test for
checking a memory access in the computer program and can be either a pre-
or post-condition. The validity of each condition in the computer program
is then evaluated. If the evaluation is determinate during compiling, the
presence or absence of memory-related errors in the computer program is
reported. A condition is determinate if the condition is valid or invalid
during compiling. Otherwise, computer code based on the condition is
generated for incorporation in the computer program for run-time detection
of memory-related errors.
Un método, un aparato, y un producto del programa de computadora se divulgan para detectar errores memoria-relacionados en un programa de computadora durante la compilación del programa de computadora. En el método, el análisis estático se realiza sobre un programa de computadora. Unas o más condiciones en el programa de computadora se computan basaron en el análisis estático. Cada condición es una prueba para comprobar un acceso de memoria en el programa de computadora y puede ser pre o poste-condicio'n. La validez de cada condición en el programa de computadora entonces se evalúa. Si la evaluación es determinada durante la compilación, la presencia o la ausencia de errores memoria-relacionados en el programa de computadora se divulga. Una condición es determinada si la condición es válida o invalid durante la compilación. Si no, el código de computadora basado en la condición se genera para la incorporación en el programa de computadora para la detección run-time de errores memoria-relacionados.