crash —— 根据file或者dentry的地址输出文件路径

简介: 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 "/"
BASH 复制 全屏
  • 遍历
crash> foreach files | grep ffff888140f49710
相关文章
|
6月前
|
编译器 API C语言
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
C/C++ 获取文件名的方法:分享一些实用的获取文件名的方法和技巧(__FILE__,__builtin_FILE(),__BASE_FILE__等)
621 0
|
安全 Java
Jprofile解析dump文件使用详解(一)
Jprofile解析dump文件使用详解(一)
706 0
Jprofile解析dump文件使用详解(一)
|
安全 C++
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
5506 0
|
3月前
|
Java
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
这篇文章介绍了Java中`File`类的常用方法操作,包括文件和目录路径名的抽象表示、构造方法、常用方法以及代码实例。文章通过具体的代码示例,展示了如何在磁盘上创建文件和目录、处理目录存在的情况、文件重命名、获取指定目录下的所有文件以及将数据写入文件等操作。每个代码实例都配有测试结果截图,帮助读者更好地理解和掌握`File`类的应用。
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
|
2月前
|
Shell
9-1| cp: 无法获取"884/*" 的文件状态(stat): 没有那个文件或目录 这是什么意思
9-1| cp: 无法获取"884/*" 的文件状态(stat): 没有那个文件或目录 这是什么意思
6.4.4 观察文件类型:file
6.4.4 观察文件类型:file
46 0
|
Linux C语言 C++
VS编译出错:fatal error C1083: 无法打开包括文件:“stdbool.h”: No such file or directory
VS编译出错:fatal error C1083: 无法打开包括文件:“stdbool.h”: No such file or directory
685 0
|
开发框架 监控 Java
Jprofile解析dump文件使用详解(二)
Jprofile解析dump文件使用详解(二)
606 0
Jprofile解析dump文件使用详解(二)
|
IDE 开发工具 C++
Qt日志重定向qInstallMessageHandler,输出Log至文件及网络
Qt日志重定向qInstallMessageHandler,输出Log至文件及网络
1012 0