Back to Search Start Over

Detecting lifetime errors of std::string_view objects in C++

Authors :
Kovacs, Reka
Horvath, Gabor
Porkolab, Zoltan
Publication Year :
2024

Abstract

std::string view is a reference-like data structure in the C++ Standard Template Library (STL) that enables fast and cheap processing of read-only strings. Due to its wide applicability and performance enhancing power, std::string view has been very popular since its introduction in the C++17 standard. However, its careless use can lead to serious memory management bugs. As the lifetime of a std::string view is not tied to the lifetime of the referenced string in any way, it is the user's responsibility to ensure that the view is only used while the viewed string is live and its buffer is not reallocated. This paper describes a static analysis tool that finds programming errors caused by the incorrect use of std::string view. Our work included modeling std::string view operations in the analysis, defining steps to detect lifetime errors, constructing user-friendly diagnostic messages, and performing an evaluation of the checker.

Details

Database :
arXiv
Publication Type :
Report
Accession number :
edsarx.2408.09325
Document Type :
Working Paper