Effective Instrumentation and Runtime Support for Enhancing Software Reliability

PhD Thesis Proposal Defence


Title: "Effective Instrumentation and Runtime Support for Enhancing Software 
Reliability"

by

Mr. Hao LING


Abstract:

Modern systems and software development is no longer a simple "code, compile 
and run" process. Dynamic analysis and monitoring of programs' runtime 
behaviors are increasingly vital in the continuous development of modern 
systems and software. These practices enhance testing, debugging, 
verification, and performance optimization. Meanwhile, standard compilation 
workflows and runtime environments often fail to collect the diverse forms 
of data required by dynamic analysis. It is necessary to employ additional 
compilation or runtime support, which, however, introduces heavy overhead 
and limits the applicability of the analysis.

This thesis presents contributions to improving the scalability of dynamic 
analysis methods at the industrial scale, focusing on instrumentation 
techniques (i.e., the automatic insertion of predefined instructions during 
compilation or runtime) and the corresponding runtime support required by 
the instrumentation (e.g., independent auxiliary data structures or 
databases).

The first contribution enhances memory safety guarantee by improving 
sanitizer efficiency and effectiveness. Memory sanitizers, widely used for 
diagnosing memory-related vulnerabilities, currently rely on low-level 
semantics derived from machine instructions, which limits their efficiency. 
Our tool, GiantSan, introduces a novel instrumentation design to enable 
memory operation-level protection derived from the semantics of the 
high-level languages, enhancing the accuracy and efficiency of memory 
sanitizers. This approach reduces runtime overhead by over 41.94% compared 
to state-of-the-art solutions and decreases false negatives by 463 cases in 
real-world projects.

The second contribution introduces a runtime monitoring component to support 
fuzz testing. We emphasize the critical role of memory-related guidance in 
fuzzing to expose hidden bugs and highlight that existing methods lack the 
necessary runtime support to retrieve this guidance. Our infrastructure, 
Spinel, captures memory-related insights with minimal overhead, leveraging 
dedicated runtime support and offline analysis. Experiments on 33 real-world 
programs demonstrate that Spinel detects 1.30x to 2.33x more unique bugs 
than state-of-the-art fuzzers and achieves a 1.56x to 8.21x speedup in 
triggering ground-truth bugs based on historical development data.


Date:                   Thursday, 12 June 2025

Time:                   3:00pm - 5:00pm

Venue:                  Room 3494
                        Lifts 25/26

Committee Members:      Prof. Charles Zhang (Supervisor)
                        Prof. Qiong Luo (Chairperson)
                        Dr. Wei Wang