1 / 16

Public Deployment of Cooperative Bug Isolation

Public Deployment of Cooperative Bug Isolation. Ben Liblit , Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan UC Berkeley, Stanford University and University of Wisconsin (pending). Our Goal: Measure Reality. We measure bridges, airplanes, cars…

chika
Download Presentation

Public Deployment of Cooperative Bug Isolation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Public Deployment of Cooperative Bug Isolation Ben Liblit, Mayur Naik, Alice Zheng, Alex Aiken, and Michael Jordan UC Berkeley, Stanford University and University of Wisconsin (pending)

  2. Our Goal: Measure Reality • We measure bridges, airplanes, cars… • Where is ight data recorder for software? • Users are a vast, untapped resource • 96,000 new Kazaa users during this workshop • Users know what matters most • Opportunity for reality-directed debugging • Implicit bug triage for an imperfect world

  3.  € ƒ ‚ ƒ €  Bug Isolation Architecture Guesses ShippingApplication ProgramSource Sampler Compiler StatisticalDebugging Prole& J/L Top bugs withlikely causes

  4. Predicates on Program Behavior • Guess what might be interesting • Branches: Left? Right? • Function returns: Negative? Zero? Positive? • Pairs of variables: Less? Equal? Greater? • Reference counts: Alive? Dead? • Count how often guesses are true • Feedback: vector of counts + outcome label

  5. Sampling the Bernoulli Way • “Next sample” countdown • Geometric distribution • Split into acyclic regions • Finite threshold weight

  6. Sampling the Bernoulli Way • “Next sample” countdown • Geometric distribution • Split into acyclic regions • Finite threshold weight 4 3 1 2 1 2 1 1

  7. >4? Sampling the Bernoulli Way • “Next sample” countdown • Geometric distribution • Split into acyclic regions • Finite threshold weight • Clone acyclic regions • “Fast” & “slow” variants • Choose at run time • Result: • Subset of dynamic behavior • Statistically fair sample

  8. Multithreaded Programs • Global next-sample countdown • High contention, small footprint • Want to use registers for performance • Thread-local: one countdown per thread • Global predicate counters • Low contention, large footprint • Optimistic atomic increment

  9. Multi-Module Programs • Forget about global static analysis • Plug-ins, shared libraries • Instrumented & uninstrumented code • Self-management at compile time • Locally derive identifying object signature • Embed static site information within object le • Self-management at run time • Report feedback state on normal object unload • Signal handlers walk global object registry

  10. Guesses Sampler Compiler Native Compiler Integration • Instrumentor must mimic native compiler • You don’t have time to port & annotate by hand • Our approach: source-to-source, then native • Hooks for GCC: • Stage wrapping via scripts • Flag management via specles ShippingApplication ProgramSource CompilerTool Chain

  11. Keeping the User In Control

  12. Public Deployment, To Date

  13. Public Deployment, To Date

  14. Sneak Peak: Data Exploration

  15. Conclusions • Public deployment is challenging • Real world code pushes tools to their limits • Large user communities take time to build • But the results are worth it: “Thanks to Ben Liblit and the CooperativeBug Isolation Project, this version ofRhythmbox should be the most stable yet.”

  16. Join the Cause! The Cooperative Bug Isolation Project http://www.cs.berkeley.edu/~liblit/sampler/

More Related