An earlier version of this paper was presented at the 40th ACM Technical Symposium on Computer Science Education (SIGCSE), Chattanooga, TN, USA, March 4–7, 2009.
Extended conference paper
Dereferee: instrumenting C++ pointers with meaningful runtime diagnostics†
Article first published online: 24 JAN 2013
Copyright © 2013 John Wiley & Sons, Ltd.
Software: Practice and Experience
Volume 44, Issue 8, pages 973–997, August 2014
How to Cite
Allevato, A. and Edwards, S. H. (2014), Dereferee: instrumenting C++ pointers with meaningful runtime diagnostics. Softw: Pract. Exper., 44: 973–997. doi: 10.1002/spe.2184
- Issue published online: 9 JUL 2014
- Article first published online: 24 JAN 2013
- Manuscript Accepted: 6 JAN 2013
- Manuscript Revised: 27 DEC 2012
- Manuscript Received: 13 MAR 2012
- National Science Foundation. Grant Number: DUE-0618663
- memory management;
Proper memory management and pointer usage often prove to be the most difficult concepts for students learning C++ to grasp. Compounding this problem is the fact that the compilers and runtime environments traditionally used to introduce these concepts leave much to be desired with regard to generating meaningful diagnostics to assist students in tracking down and fixing memory-related logical errors. To alleviate this, we have developed Dereferee, an advanced yet thin wrapper around C++ pointers that greatly increases the quality of these runtime diagnostics, but with only a small amount of intrusion into the development process. With regard to performance, memory-intensive programs will experience execution times approximately 20–30 times slower when using Dereferee, which is comparable with other similar tools. Furthermore, the library has been designed to be customizable and easily disabled to transition codes from development to production.Copyright © 2013 John Wiley & Sons, Ltd.