Blinkenlights is a command-line debugger that visualizes how software changes memory. On the Linux, Mac, Windows, FreeBSD, NetBSD, and OpenBSD platforms, it can emulate statically linked i8086 and x86 64-pc-linux-gnu programs.
Computers used to have operator panels that gave a detailed view of the machine’s internal state at any given time. The blinking lights would convey each piece of software’s personality. Because our minds are great at detecting patterns, developers would intuitively understand if a program was sorting data, collating, stuck in an infinite loop, and so on based on which way the LEDs flashed. Until now, modern machines have done a poor job of recreating this aspect of the computing experience.
The interface of Blinkenlights is unique in that it is designed with the assumption that terminal displays have grown larger than 80 columns. As a result, we can display far more useful information panels than alternatives such as GDB. The panels that hexdump memory using Code Page 437 are the most important. It can also infer the type signatures of SSE registers based on the instructions. For example, here’s a screencast of an operating session for a program that simply prints images in the terminal.
Here are some of the features that are supported:
For more information: