| Files: |
Description |
File size |
Format |
| Fulltext |
|
PDF (requires Acrobat Reader) |
| Fulltext |
|
PostScript (requires a PostScript Reader) |
| |
|
| Authors: |
Richard W. M. Jones and Paul H. J. Kelly |
| Article title: |
Backwards-Compatible Bounds Checking for Arrays and Pointers in C Programs |
| Conference: |
AADEBUG'97. Proceedings of the Third International Workshop
on Automatic Debugging: Linköping, Sweden, May 26-27, 1997 |
| Publ. type: |
Article |
| Article No: |
2 |
| Language: |
English |
| Abstract [en]: |
This paper presents a new approach to enforcing array
bounds and pointer checking in the C language. Checking is rigorous in
the sense that the result of pointer arithmetic must refer to the same
object as the original pointer (this object is sometimes called the
'intended referent'). The novel aspect of this work is that checked
code can inter-operate without restriction with unchecked code,
without interface problems, with some effective checking, and without
false alarms. This ``backwards compatibility'' property allows the
overheads of checking to be confined to suspect modules, and also
facilitates the use of libraries for which source code is not
available. The paper describes the scheme, its prototype
implementation (as an extension to the GNU C compiler), presents
experimental results to evaluate its effectiveness, and discusses
performance issues and the effectiveness of some simple optimisations. |
| PDF |
| Publisher: |
Linköping University Electronic Press |
| Year: |
1997 |
| Available: |
1997-09-10 |
| No. of pages: |
14 |
| Pages: |
13-26 |
| Series: |
Linköping Electronic Articles in Computer and Information Science |
| ISSN: |
1401-9841 |
| Volume: |
2 |
| No: |
009 |
| Series: |
Linköping Electronic Conference
Proceedings |
| ISSN (print): |
1650-3686 |
| ISSN (online): |
1650-3740 |
| Issue: |
1 |
REFERENCE TO THIS PAGE:
| Jones, Richard W.M. and Kelly, Paul H. J. (1997). Backwards-Compatible Bounds Checking for Arrays and Pointers in C Programs in Linköping Electronic Articles in Computer and Information Science, Vol. 2, No. 009:02. http://www.ep.liu.se/ea/cis/1997/009/02/.
(
) |
|