::walk ... | ::<dcmd> misinterprets input as symbol names
cmd - userland programs
From Matt Ahrens's original bug report at Delphix:
When doing "::walk thread | ::tsd ... " in userland, you get strange error messages like: mdb: thread ID -17397136 not found: unknown symbol name and some threads tsd is not printed. The problem is that walker output includes hex numbers like "e2" and "fd". In userland, there are also symbols with these names, so mdb looks up the address of the symbol and passes it to the dcmd, just as if I had typed "fd::tsd". The solution is to make walker output unambiguously a number, e.g "0xfd" rather than "fd". This is accomplished by making walk_step() use the "%#lr" format.