| S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer USENIX Conference, pages 161--171, 1988. |
....is completed. 5 Related Work There are many related research activities. They can be roughly classified into two categories. The focus of the first category is to detect various error states at runtime which are common to many programs. For example, Purify [5] and Sabar C (CodeCenter) [8] dynamically detect memory access errors caused by array boundary overflow. In addition, StackGuard [3] and many other recent implementations focus on preventing well known security holes such as stack bu#er overflow used by many recent security attacks. However, all of them detect only some ....
Stephen Kaufer, Russell Lopez, and Sasha Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proc. 1998 Summer USENIX Conference, pages 161--171, 1988.
....by trading space and speed for security. Previous techniques have been concerned with spatial access errors (array bounds checks and pointer arithmetic) and temporal access errors (touching memory that has been freed) but none of them use a static analysis of the form presented here. Kaufer et al. [14] present an interpretive scheme called Saber C that can detect a rich class of errors (including uninitialized reads and dynamic type mismatches but not all temporal access errors) but runs about 200 times slower than normal. Austin et al. 2] store extra information with each pointer and achieve ....
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreterbased programming environment for the C language. In Proceedings of the Summer Usenix Conference, pages 161-171, 1988.
....components of a software system in different ways. Hybrid execution is no new concept, and many available tools provide hybrid execution mechanisms which combine interpretive and direct execution. Good examples are Lisp and Prolog development environments, e.g. 29] 16] as well as Saber C [13], 23] 14] Hybrid execution by transparent integration of interpretation and direct execution results in fast execution and a comfortable development environment. SCT goes one step further by providing simulation as an execution mode to complement interpretation and direct execution. While ....
Kaufer S, Lopez R, Pratap S (1988) Saber-C, An Interpreter-Based Programming Environment for the C Language. In Proceedings of USENIX, San Francisco
....Kendall s bcc[13] and Steffen s rtcc[7] is that in our scheme the representation of pointers is unchanged. This is crucial, since it means that inter operation with non checked modules and libraries still works (and much checking is still possible) Compared with interpretative schemes like Sabre C[14], we offer the potential for much higher performance. Patil and Fischer [10, 11] present a sophisticated technique with very low overheads, using a second CPU to perform checking in parallel. Unfortunately, their scheme requires function interfaces to be changed to carry information about ....
....we review earlier approaches and explain the basis for the new approach. 3. 1 Earlier approaches to carrying bounds information base: pointer: limit: Enhanced pointer Storage object Figure 1: Modified pointer representation: pointer base address extent triple In earlier work in this area[5, 14, 13, 7, 8, 10, 11], bounds information is carried with each pointer at run time. A simple approach is to represent each pointer as a triple: the pointer, together with the storage region s base address and limit or extent. Checking is then straightforward. The larger size of pointers requires changes in storage ....
S.Kaufer, R.Lopez, and S.Pratap. Saber--C: an interpreter--based programming environment for the C language. In USENIX San Francisco 1988 Summer Conference Proceedings. USENIX Association, El. Cerrito, California, USA, 1988.
....the ANNA to ADA transformer uses the idea of executing checking code concurrently with the underlying program. However, it generates numerous tasks per annotation, which may lead to excessive overhead. Executing user defined assertions seems like a good application for shadow processing. CodeCenter[KLP88] is a programming environment that supports an interpreter based development scheme for the C language. The evaluator in CodeCenter provides a wide range of run time checks. It detects approximately 70 run time violations involving illegal array and pointer accesses, improper function arguments, ....
Stephan Kaufer, Russel Lopez, and Sesha Pratap. Saber-C an interpreter-based programming environment for the C language. In Proceedings of the Summer USENIX Conference, pages 161--171, 1988.
....the interpreted code was 12.4 42.6 times slower than native code on a VAX 11 780, and 20.9 42.5 times slower on a Sun 3 75. Executable sizes were not compared. Kaufer, et al. developed a diagnostic C interpreter environment, Saber C, that performs approximately 70 run time error checks [KLP88]. Saber C s interpreted code is roughly 200 times slower than native code, which the authors attribute to the run time checks. The interpreter implements a stack based machine, and maintains calling conventions between native and interpreted code. Unlike hti interpreted functions have two entry ....
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C: An interpreterbased programming environment for the C language. In Proceedings of the 1988 Usenix Summer Conference, San Francisco, CA, June 1988.
.... are: graphical interfaces (some examples are the Joff debugger [4] Bugbane [5] Dbxtool [6] Pi [7] and pdb [8] debugging optimized code ( 9] is the classic reference) issues in source level debugging [10] and symbol table management [6, 11, 12] interpretive debuggers, such as Saber C [13]; transfer tracing, where each discontinuity in the program counter is recorded [14] debugging real time software [15] and multi lingual debuggers [11, 16] We also will not be discussing debugging of multi threaded, parallel, or distributed programs (of which there is a substantial body of ....
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C: An interpreter-based programming environment for the C language. In Proceedings of the 1988 Usenix Summer Conference, San Francisco, CA, June 1988.
....first class references entirely. Earlier versions of Caml and Caml Light also provided mutable constructor arguments, albeit with different syntax from the one presented here [17] A number of C compilers and debugging aids use a representation of pointers similar to ours to make their usage safe [25, 14, 12, 6]. Their representations typically include a bounds argument as well to support spatially safe pointer arithmetic. Making pointers completely safe in C is significantly harder than in ML because a pointer to a local variable has only limited extent, namely the lifetime of its activation record. ....
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C --- an interpreter-based programming environment for the C language. In USENIX Association, editor, USENIX Conference Proceedings, Summer, 1988. San Francisco, pages 161--171, Berkeley, CA, USA, 1988. USENIX.
....when debugging the memory usage of a program. Once all memory defects have been removed, the process is turned off and there is no run time penalty. A commercial program, Purify [6] does what this paper s method does, and a whole lot more. Another commercial program, Centerline s ObjectCenter C [7], is an interpretive C environment that can catch many types of memory errors, but may not be able to catch the types of memory leaks this paper s method does. ....
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-c an interpreter-based programming environment for the c language. In Summer USENIX Conference, pages 161--171, 1988.
....85.0 ear 305.4 s 589.1 642.0 1 636.4 eqntott 18.8 s 735.6 1337.2 3.2 1328.2 espresso 7.9 s 1107.6 648.1 1.3 650.6 sc (loadc2) 38.6 s 613.5 173.3 6.7 95.1 xlisp 122.1 s 988.1 775.6 5. 6 787.6 24 To appear in Software Practice and Experience Other Systems CodeCenter[18] is a programming environment that supports an interpreter based development scheme for the C language. The evaluator in CodeCenter provides a wide range of run time checks. It detects approximately 70 run time violations involving illegal array and pointer accesses, improper function arguments, ....
S. Kaufer, R. Lopez, and S. Pratap. Saber-C an interpreter-based programming environment for the C language. In Proceedings of the Summer USENIX Conference, pages 161--171, 1988.
....of the implementation suffers. Using an interpreter to implement watchpoints would not be efficient because interpreted code runs slower than compiled code, but it would be faster than single 17 stepping. For example, interpreted ANSI C runs approximately 200 times slower than compiled code [16]. Likewise, machine simulators tend to run 5 to 50 times slower than native hardware [3, 7] CHAPTER 3 IMPLEMENTATION DETAILS Many of the techniques proposed to provide efficient watchpoints rely on a service, either abstract or real, that informs the debugger when a particular address in memory ....
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C: an interpreterbased programming environment for the C language. In Proceedings of the 1988 Usenix Summer Conference, pages 161--171, June 1988.
....The performance is quite good. Instruction execution overheads range from 130 to 540 , and text and data size overheads are typically below 100 . We also benchmarked our prototype system against two commercially available tools that support memory access checking (Purify [HJ92] and CodeCenter [KLP88]) and found that our checking technique consistently uses less resources, even while providing better error coverage for memory access errors. This paper is organized as follows. Section 2 introduces our extended safe pointer representation. Section 3 details the program transformations required ....
.... Safe C C C source to source yes yes errant free s translation Purify object files object code yes yes errant free s, HJ92] translation limited to heap limited to heap uninitialized reads, storage leaks RTCC C safe yes no [Ste92] compiler CodeCenter C C interpreter yes yes errant free s, [KLP88] uninitialized reads, type checking, arithmetic errors, etc. Integral C C safe yes no [Ros87] compiler UW Pascal Pascal safe yes yes errant free s, FL80] compiler union type checking, arithmetic faults, etc. Table 4: Comparison of memory access checking work. Entries with an asterisk ( ....
[Article contains additional citation context not shown here]
Stephen Kaufer, Russel Lopez, and Sesha Pratap. Saber-C: an interpreter-based programming environment for the C language. Proceedings of the Summer Usenix Conference, pages 161--171, 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer USENIX Conference, pages 161--171, 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: An interpreter-based programming environment for the C language. In USENIX Summer Conference, pages 161--171, San Francisco, CA, June 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer USENIX Conference, pages 161--171, 1988.
No context found.
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C --- an interpreter-based programming environment for the C language. In USENIX Association, editor, Summer USENIX Conference Proceedings, pages 161--171, Berkeley, CA, USA, Summer 1988. USENIX.
No context found.
Stephen Kaufer, Russell Lopez, and Sesha Pratap. Saber-C --- an interpreter-based programming environment for the C language. In USENIX Association, editor, Summer USENIX Conference Proceedings, pages 161--171, Berkeley, CA, USA, Summer 1988. USENIX.
No context found.
Stephen Kaufer, Russel Lopez, and Sesha Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer Usenix Conference, pages 161--171, 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreterbased programming environment for the C language. In Proceedings of the Summer Usenix Conference, pages 161--171, 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer Usenix Conference, pages 161--171, 1988.
No context found.
S. Kaufer, R. Lopez, and S. Pratap. Saber-C: an interpreter-based programming environment for the C language. In Proceedings of the Summer Usenix Conference, pages 161--171, 1988.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC