Or: > ::modctl ! grep zfs 300012ab908 300012b3500 li 0x00 0 fs/zfs
> 300012b3500::print struct module filename filename = 0x300017df758 "/kernel/fs/sparcv9/zfs" alex. On 03/20/09 07:00, James Carlson wrote: > Sambit Nayak writes: >> A follow-up question : Now that I know the module name that defines a >> symbol, how do I find what's the path to the kernel module on the root >> filesystem? >> >> eg, >>> dsl_prop_set_sync::nm -f obj,name >> Object Name >> zfs |dsl_prop_set_sync > > Here's how I'd do it: > >> dsl_prop_set_sync$m > BASE LIMIT SIZE NAME > fffffffff788f000 fffffffff792abe0 9bbe0 zfs >> ::offsetof modctl_t mod_text > offsetof (modctl_t, mod_text) = 0x70 >> ::offsetof modctl_t mod_mp > offsetof (modctl_t, mod_mp) = 0x18 >> ::walk modctl | ::grep *(.+18) | ::grep *(.+70)==fffffffff788f000 | ::print >> modctl_t mod_mp | ::print "struct module" filename > filename = 0xffffff01cc464c90 "/kernel/fs/amd64/zfs" > > Note that this is simply the path when the file was originally > loaded. There's no way to tell (from this alone) whether the file > might have been overwritten since then. >