Stay Informed:
Baskin Engineering COVID-19 Information and Resources
Campus Roadmap to Recovery
Zoom Links: Zoom Help | Teaching with Zoom | Zoom Quick Guide

Data-Centric Debugging or: How I Learned to Stop Worrying and Use 'Big-Data' Techniques to Diagnose Software Bugs

Speaker Name: 
Andrew Quinn
Start Time: 
Tuesday, March 23, 2021 - 11:00am
End Time: 
Tuesday, March 23, 2021 - 12:15pm
Via Zoom Link
Katia Obraczka


Software bugs are pervasive and costly.  As a result, developers spend the majority of their time debugging their software.  Traditionally, debugging involves inspecting and tracking the runtime behavior of a program.  Alas, program inspection is computationally expensive, especially when employing powerful techniques such as dynamic information flow tracking, data-race detection, and data structure invariant checks.  Moreover, to use current tools (e.g., gdb, Intel PIN), developers write complex debugging logic in a style that mirrors traditional software.  So, debugging logic faces the same challenges as traditional software, including concurrency, fault handling, and dynamic memory. In general, specifying debugging logic can be as difficult as writing the program being debugged!

In this talk, I will describe a new data-centric debugging framework that alleviates the performance and specification limitations of current debugging tools.  The key idea is to treat debugging as a data-oriented task, in which debugging questions are conceptually expressed as queries over an execution of a program.  I will discuss how this conceptual model enables massive-scale parallelism to accelerate debugging (SledgeHammer), even those, such as information flow, that are "embarrassingly sequential" (JetStream).  In addition, I will describe my ongoing work on the OmniTable Query Model, a relational model that simultaneously simplifies debugging logic and leverages powerful performance optimizations.


Andrew Quinn is a sixth-year graduate student at the University of Michiganworking with Jason Flinn and Baris Kasikci.  He received an NSF fellowship (2017) and an MSR fellowship (2017).  His research investigates systems, tools, techniques to make software more reliable.  His dissertation focuses on

solutions that help developers better understand their software for tasks such as debugging, security forensics, and data provenance.  In addition, he has recently been working on solutions to improve the reliability of applications that use emerging hardware, including persistent memory, heterogeneous systems, and edge computing, and new systems for production-grade deterministic record
and replay.

Before Michigan, Andrew attended Dension University where received degrees in Computer Science and Mathematics.  Between his undergraduate and Ph.D. studies, he worked as a software engineer at IBM.  When not working, Andrew is likely wrestling with his dogs, enjoying a long run around Ann Arbor MI, or baking something sweet.


Zoom Link:

Event Type: