Hacker News Front Page · ingve ·
Nix wrote half of my debugger
El autor sostiene que Nix aporta gran parte de lo necesario para construir un depurador reproducible: las entradas exactas de cada compilación, el código fuente, los símbolos de depuración y una forma de compartirlos. Rewind aprovecha esa base para repetir ejecuciones en una máquina virtual determinista, alterar la planificación de los hilos y localizar el paso preciso que provoca una condición de carrera. En una prueba con dos hilos que actualizan una cuenta bancaria, el sistema identificó en 11 segundos el punto donde una nueva planificación hacía perder dinero.
A few days ago I wrote about Rewind VM, a deterministic VM where every run of a Nix build is a pure function of its inputs, thread schedule included! I have been using it to find, reproduce and solve numerous race conditions in Nix builds, but it’s been making me feel a little crazy. What is this superpower, and why is nobody else using it? The tool has quickly grown a source panel, stack frames, bookmarks, a “Compare” tab, a lot more gdb support, thread lanes, which show who held the CPU at every step, and “Check from here”, which…