::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.
Updated by Christopher Siden over 7 years ago
- % Done changed from 0 to 100
- Status changed from Pending RTI to Resolved
commit 28e4da2 Author: Matthew Ahrens <email@example.com> Date: Wed Jan 30 15:02:58 2013 3465 ::walk ... | ::<dcmd> misinterprets input as symbol names 3466 ::tsd should handle missing/NULL values better 3467 mdb_ctf_vread() could be more useful 3468 mdb enhancements for zfs development 3470 ::whatis does not print callers from KMF_LITE 3473 mdb_get_module() returns wrong module Reviewed by: Adam Leventhal <firstname.lastname@example.org> Reviewed by: Eric Schrock <email@example.com> Reviewed by: Dan Kimmel <firstname.lastname@example.org> Reviewed by: Robert Mustacchi <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>