A logic analyzer is an electronic instrument that displays signals in a digital circuit that are too fast to be observed and presents it to a user so that the user can more easily check correct operation of the digital system. They are typically used for capturing data in systems that have too many channels to be examined with an oscilloscope. Software running on the logic analyzer can convert the captured data into timing diagrams, protocol decodes, state machine traces, assembly language, or correlate assembly with source-level software.
When selecting a logic analyzer, make sure that the software package includes bus analyzers (I2C/SPI/UART are a given). Any tool worth purchasing will include support for these.
Since logic analyzers typically need software running on your development system, this list is split up to give preference to those tools which are fully supported on both Windows and Linux.