LLDB Reproducers

Hey everyone,

Over the course of the past year, I’ve come to the conclusion that the reproducers still require a non-trivial amount of investment to reach production quality. Unfortunately, I don’t have the bandwidth to make that happen.

Reproducers are inherently all-or-nothing: they either faithfully reproduce the issue or they don’t. There is no middle ground and we’ve seen that the smallest bug or shortcoming in LLDB’s reproducer infrastructure can render a reproducer useless. At the same time, the information that’s part of the reproducer is generally valuable in and by itself. The list of commands, the executable and symbol files are often things we need during an investigation.

My plan is to transform the reproducers into something that resembles a sysdiagnose on Apple platforms: an archive containing a variety of information to help diagnose a bug, but without the machinery to automatically reproduce the bug. This essentially means keeping a subset of the “capture” side of the reproducer infrastructure but dropping the “replay” part.

Unless anyone objects and volunteers to maintain (and improve) the current reproducer functionality, I’m going to move in the direction outlined above and start ripping out the parts of the reproducers that don’t serve their new purpose.