Dynamically diagnosing type errors in unsafe code
Accepted version
Peer-reviewed
Repository URI
Repository DOI
Change log
Authors
Abstract
Existing approaches for detecting type errors in unsafe languages are limited. Static analysis methods are imprecise, and often require source-level changes, while most dynamic methods check only memory properties (bounds, liveness, etc.), owing to a lack of run-time type information. This paper describes libcrunch, a system for binary-compatible run-time type checking of unmodified unsafe code, currently focusing on C. Practical experience shows that our prototype implementation is easily applicable to many real codebases without source-level modification, correctly flags programmer errors with a very low rate of false positives, offers a very low run-time overhead, and covers classes of error caught by no previously existing tool.
Description
Journal Title
Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
Conference Name
Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
Journal ISSN
Volume Title
Publisher
Association for Computing Machinery (ACM)
Publisher DOI
Rights and licensing
Except where otherwised noted, this item's license is described as All rights reserved
Sponsorship
Engineering and Physical Sciences Research Council (EP/K008528/1)
