image dump symtab seems to output the symbols in whatever order they appear in the DenseMap
that is used to filter out symbols with non-unique addresses. As DenseMap is a hash map this order
can change at any time so the output of this command is pretty unstable. This
also causes the Breakpad/symtab.test to fail with enabled reverse iteration (which reverses the DenseMap
order to find issues like this).
This patch makes the DenseMap a std::vector and uses a separate DenseSet to do the address filtering.
The output order is now dependent on the order in which the symbols are read (which should be
deterministic). It might also avoid a bit of work as all the work for creating the Symbol constructor
parameters is only done when we can actually emplace a new Symbol.