Show simple item record

dc.contributor.advisorHuang, Jeff
dc.creatorLiu, Peiming
dc.date.accessioned2023-02-07T16:12:14Z
dc.date.available2023-02-07T16:12:14Z
dc.date.created2022-05
dc.date.issued2022-03-23
dc.date.submittedMay 2022
dc.identifier.urihttps://hdl.handle.net/1969.1/197233
dc.description.abstractPointer Analysis is a fundamental technique with enormous applications, such as value-flow analysis, bug detection, etc. It is also a prerequisite of many compiler optimizations. However, despite decades of research, the scalability and precision of pointer analysis remain to be an open question. In this dissertation, I introduce my research effort to apply pointer analysis to detect vulnerabilities in software and more importantly, to design and implement a faster and more precise pointer analysis algorithm. In this dissertation, I present my works on improving both the precision and the performance of inclusion-based pointer analysis. I proposed two fundamental algorithms, origin-sensitive pointer analysis and partial update solver (PUS), and show their practicality by building two tools, O2 and XRust, on top of them. Origin-sensitive pointer analysis unifies widely-used concurrent pro-gramming models: events and threads, and analyzes data sharing (which is essential for static data race detection) with thread/event spawning sites as the context. PUS, a new solving algorithm for inclusion-based pointer analysis, advances the state-of-the-art by operating on a small subgraph of the entire points-to constraint graph at each iteration while still guaranteeing correctness. Our experimental results show that PUS is 2x faster in solving context-insensitive points-to constraints and 7x faster in solving context-sensitive constraints. Meanwhile, the tool, O2, that is backed by origin-sensitive pointer analysis was able to detect many previously unknown data races in real-world applications including Linux, Redis, memcached, etc; XRust can also isolate memory errors in unsafe Rust from safe Rust utilizing data sharing information computed by pointer analysis with negligible overhead .
dc.format.mimetypeapplication/pdf
dc.language.isoen
dc.subjectPointer Analysis
dc.subjectStatic Analysis
dc.subjectBug Detection
dc.titleFaster and More Precise Pointer Analysis Algorithms for Automatic Bug Detection
dc.typeThesis
thesis.degree.departmentComputer Science and Engineering
thesis.degree.disciplineComputer Science
thesis.degree.grantorTexas A&M University
thesis.degree.nameDoctor of Philosophy
thesis.degree.levelDoctoral
dc.contributor.committeeMemberGu, Guofei
dc.contributor.committeeMemberHu, Jiang
dc.contributor.committeeMemberBettati, Riccardo
dc.type.materialtext
dc.date.updated2023-02-07T16:12:15Z
local.etdauthor.orcid0000-0002-6752-3274


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record