Discussed at https://www.eevblog.com/forum/programming/signal-visualisation-gtkwave-and-disassemblers/msg3919367/#msg3919367 where I was given a solution. I needed to do a "Combine Down" on individual signals before GTKWave took any notice of them, i.e. something like Start GTKWave, "File" -> "Open New Tab" and select my test file scratch2.vcd. In the top-left pane, click on "Top". In the bottom-left pane, control-click to select four signals and press "Append". In the main menu, "Time" -> "Zoom"...
Is there a blow-by-blow account of setting up an external filter to act as e.g. a disassembler anywhere? I'm at the point where my custom filter logs that it's starting, nothing locks up, and it terminates in good order but it quite simply sees nothing being sent to it through stdin. GTKWave 3.3.98 on Debian Linux 86_64.