The symbolic dump was provided for fasm 1 to give access to information that would otherwise be inaccessible, to allow producing listings and debug info structures. This was simply a dump of the internal data, in implementation-specific format, because that was the least troublesome method of doing it.
In case of fasmg, there are various facilities that allow to intercept and gather necessary information from the language itself. I provided a couple of listing generators in the
utility package, and the
auxiliary documentation has some notes on intercepting the labels. These are just general examples - when creating a specific framework, like implementing specific CPU architecture and output format, with custom rules of syntax and structuring of code, a specialized modules to generate listings or symbol dumps may be included in such framework, taking into consideration its specific needs. Compare how these two different listing generators behave with AVR example.