crash —— 根据file或者dentry的地址输出文件路径
有时我们知道了一个文件的file或者dentry地址,想知道对应的文件的路径,下面介绍两种方法:
file
如果知道的是file的地址,可以使用files命令:
crash> foreach files | grep ffff88824243e000
1 ffff88824243e000 ffff888140f07ad0 ffff888140f59368 REG /proc/sysrq-trigger
dentry
也可以先通过file的地址得到dentry的地址,方法很简单:
crash> *file.f_path -x ffff88824243e000
f_path = {
mnt = 0xffff8887417c44a0,
dentry = 0xffff888140f07ad0
},
比如dentry的地址是ffff888140f49710,输出文件路径的方法是:
- 使用files命令
crash> files -d 0xffff888140f49710
DENTRY INODE SUPERBLK TYPE PATH
ffff888140f49710 ffff888140fb2b88 ffff8881c0daf000 REG /var/log/journal/a93e80bc64d54c6187b90bc46e84d7a8/system.journal
- 使用list命令
dentry结构通过d_parent指向父dentry,而dentry的名字存放在d_name中,所以可以得出:
crash> list -o dentry.d_parent -s dentry.d_name.name ffff888140f49710
ffff888140f49710
d_name.name = 0xffff888140f49788 "system.journal"
ffff888140f495c8
d_name.name = 0xffff888140f11090 "a93e80bc64d54c6187b90bc46e84d7a8"
ffff888140f490a8
d_name.name = 0xffff888140f49120 "journal"
ffff888140f48f60
d_name.name = 0xffff888140f48fd8 "log"
ffff888140f4ce18
d_name.name = 0xffff888140f4ce90 "var"
ffff8881c487a520
d_name.name = 0xffff8881c487a598 "/"
- 遍历
crash> foreach files | grep ffff888140f49710
本文来自博客园,作者:dolinux,未经同意,禁止转载

浙公网安备 33010602011771号