Dereferee: instrumenting C plus plus pointers with meaningful runtime diagnostics

被引:2
|
作者
Allevato, Anthony [1 ]
Edwards, Stephen H. [1 ]
机构
[1] Virginia Tech, Dept Comp Sci, Blacksburg, VA 24061 USA
来源
SOFTWARE-PRACTICE & EXPERIENCE | 2014年 / 44卷 / 08期
基金
美国国家科学基金会;
关键词
C plus; memory management; pointers; debugging; testing;
D O I
10.1002/spe.2184
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 (C) 2013 John Wiley & Sons, Ltd.
引用
收藏
页码:973 / 997
页数:25
相关论文
共 50 条
  • [1] Towards Distributed Runtime Monitoring with C plus plus Contracts
    Schmedes, Rolf
    Ittershagen, Philipp
    Gruettner, Kim
    INTERNATIONAL CONFERENCE ON OMNI-LAYER INTELLIGENT SYSTEMS (COINS), 2019, : 141 - 145
  • [2] An automated test data generation method for void pointers and function pointers in C/C plus plus libraries and embedded projects
    Lam Nguyen Tung
    Hoang-Viet Tran
    Khoi Nguyen Le
    Pham Ngoc Hung
    INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 145
  • [3] AutoTuneTMP: Auto-Tuning in C plus plus With Runtime Template Metaprogramming
    Pfander, David
    Brunn, Malte
    Pflueger, Dirk
    2018 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW 2018), 2018, : 1123 - 1132
  • [4] Runtime race detection for mum-threaded C plus plus server applications
    Muhlenfeld, Arndt
    Wotawa, Franz
    PROCEEDINGS OF THE IASTED INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2007, : 111 - +
  • [5] Source-to-Source Instrumentation for Profiling Runtime Behavior of C plus plus Containers
    Jungblut, Pascal
    Kowalewski, Roger
    Fuerlinger, Karl
    IEEE 20TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS / IEEE 16TH INTERNATIONAL CONFERENCE ON SMART CITY / IEEE 4TH INTERNATIONAL CONFERENCE ON DATA SCIENCE AND SYSTEMS (HPCC/SMARTCITY/DSS), 2018, : 948 - 953
  • [6] HDPV: interactive, faithful, in-vivo runtime state visualization for C/C plus plus and Java']Java
    Sundararaman, Jaishankar
    Back, Godmar
    SOFTVIS 2008: PROCEEDINGS OF THE 4TH ACM SYMPOSIUM ON SOFTWARE VISUALIZATION, 2008, : 47 - 56
  • [7] Detecting Memory-Related Bugs by Tracking Heap Memory Management of C plus plus Smart Pointers
    Ma, Xutong
    Yan, Jiwei
    Wang, Wei
    Yan, Jun
    Zhang, Jian
    Qiu, Zongyan
    2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, : 880 - 891
  • [8] Exploring the Access to the Static Array Elements via Indices and via Pointers - the Introductory C plus plus Case
    Logozar, Robert
    Mikac, Matija
    Radosevic, Danijel
    CENTRAL EUROPEAN CONFERENCE ON INFORMATION AND INTELLIGENT SYSTEMS, CECIIS 2022, 2022, : 507 - 517
  • [9] Transactional Pointers: Experiences with HTM-Based Reference Counting in C plus
    Carpen-Amarie, Maria
    Dice, Dave
    Thomas, Gael
    Felber, Pascal
    NETWORKED SYSTEMS, NETYS 2016, 2016, 9944 : 102 - 116
  • [10] A Non-intrusive Technique for Interfacing Legacy Fortran Codes with Modern C plus plus Runtime Systems
    Byerly, Zachary D.
    Kaiser, Hartmut
    Brus, Steven
    Schaefer, Andreas
    PROCEEDINGS OF 2015 THIRD INTERNATIONAL SYMPOSIUM ON COMPUTING AND NETWORKING (CANDAR), 2015, : 503 - 507