作者: HARISH PATIL , CHARLES FISCHER
DOI: 10.1002/(SICI)1097-024X(199701)27:1<87::AID-SPE78>3.0.CO;2-P
关键词: Program slicing 、 Multiprocessing 、 Operating system 、 Execution time 、 Pointer (computer programming) 、 Programming language 、 Workstation 、 Computer science 、 Unix
摘要: Illegal pointer and array accesses are a major cause of failure for C programs. We present technique called ‘guarding’ to catch illegal accesses. Our implementation guarding programs works as source-to-source translator. Auxiliary objects guards added user program monitor at run time. Guards maintain attributes out bounds deallocated memory. system has found number previously unreported errors in widely-used Unix utilities SPEC92 benchmarks. Many commonly used have bugs which may not always manifest themselves crash, but instead produce subtly wrong answer. These routinely checked run-time because the increase execution time due checking can be very high. two techniques handle high cost programs: ‘customization’ ‘shadow processing’. Customization by decoupling from original computation. A is customized throwing away computation relevant guarding. explored using slicing customization. cut overhead up half. Shadow processing uses idle processors multiprocessor workstations perform background. instrumented obtain ‘main process’ process’. The main process performs computations orignal program, occasionally communicating few key values shadow process. follows process, sees low – almost less than 10%. © 1997 John Wiley & Sons, Ltd.