Memspect: Tiny Static Analysis Framework for Real-World C Codebases
摘要
The C programming language, with its distinctive capability for low-level memory manipulation, makes it susceptible to a wide range of memory errors, especially memory leaks. Existing static analyzers and memory debuggers are often heavy and encounter scalability issues, encouraging the need for a platform-independent native C memory debugger framework for quick testing and debugging. We introduce Memspect, a general-purpose, tiny static analysis framework that incorporates Data dependence analysis specifically for C programs. Memspect leverages recent advancements in points-to-analysis and builds upon existing SOTA data flow analysis methodologies to enhance the precision and performance of static analyzers. Memspect places a strong emphasis on the accurate identification of bugs in C codebases by generating Interprocedural Control Flow Graphs (ICFGs) and Interprocedural Data Flow Graphs (IDFGs). The framework is designed to be highly customizable allowing developers to add their preferred analysis and techniques. Memspect is built to be quick, easy, efficient, and most importantly developer-friendly allowing researchers and industry professionals alike to experiment with static analysis without sacrificing accuracy and performance.