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__等)
652 0
|
安全 Java
Jprofile解析dump文件使用详解(一)
Jprofile解析dump文件使用详解(一)
714 0
Jprofile解析dump文件使用详解(一)
|
安全 C++
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
5564 0
|
3月前
|
Java
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
这篇文章介绍了Java中`File`类的常用方法操作,包括文件和目录路径名的抽象表示、构造方法、常用方法以及代码实例。文章通过具体的代码示例,展示了如何在磁盘上创建文件和目录、处理目录存在的情况、文件重命名、获取指定目录下的所有文件以及将数据写入文件等操作。每个代码实例都配有测试结果截图,帮助读者更好地理解和掌握`File`类的应用。
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
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
693 0
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案
os.rename批量修改文件名称报错:[WinError 2] 系统找不到指定的文件的解决方案
|
移动开发 PHP
file_put_contents追加 一个很简单的php记录日志的函数
$str="我是日志内容!"; $str=$str.date("Y-m-d H:i:s",time())."\r\n"; file_put_contents('log.txt',$str,FILE_APPEND); file_put_contents() 的行为实际上等于依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 FILE_APPEND:在文件末尾以追加的方式写入数据 ———————————————— 版权声明:本文为CSDN博主「娃娃菜001」的原创文章,遵循CC
240 0
file_put_contents追加 一个很简单的php记录日志的函数
|
开发框架 监控 Java
Jprofile解析dump文件使用详解(二)
Jprofile解析dump文件使用详解(二)
616 0
Jprofile解析dump文件使用详解(二)