A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs
Philip J. Guo · DSpace@MIT (Massachusetts Institute of Technology) · 2006
Source-level and binary-level dynamic program analyses have complementary advantages. Current dynamic analyses for software engineering typically operate either at the source code level or at the binary level (possibly translating results to source code terms for output). I propose a mixed-level approach that combines the best of the sourcelevel and binary-level approaches throughout the analysis. Compared to a one-level approach, the mixed-level approach simplifies implementation, improves robustness and scalability, and enables analyses that cannot be performed purely at the source or binary level. For my Master of Engineering thesis, I will implement a dynamic instrumentation toolkit that embodies the mixed-level approach and use it to build two distinct dynamic analysis tools. One performs value profiling — outputting a rich set of run-time values for further analysis — and the other performs value partitioning — determining abstract types for concrete values. These two tools work together to serve as a C/C++ Front End for the Daikon Dynamic Invariant