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
相关文章
|
移动开发 Dart 前端开发
从架构到源码:一文了解Flutter渲染机制
Flutter从本质上来讲还是一个UI框架,它解决的是一套代码在多端渲染的问题。在渲染管线的设计上更加精简,加上自建渲染引擎,相比ReactNative、Weex以及WebView等方案,具有更好的性能体验。本文将从架构和源码的角度详细分析Flutter渲染机制的设计与实现。较长,同学们可收藏后再看。
8054 1
从架构到源码:一文了解Flutter渲染机制
|
10月前
|
API
鸿蒙开发:了解显式动画animateTo
在实际的开发中,应该遵循规范,正确的使用属性动画animateTo,切莫在轮询中使用,否则就会造成本不属当前的动画进行执行,造成UI错误,还有一点需要注意,那就是直接使用animateTo可能导致实例不明确的问题,建议使用getUIContext获取UIContext实例,并使用animateTo调用绑定实例的animateTo。
313 3
鸿蒙开发:了解显式动画animateTo
|
程序员 开发工具 Android开发
Android JetPack App Startup 使用及源码浅析(二)
Android JetPack App Startup 使用及源码浅析
|
存储 SQL 监控
SLS新版告警自助排查系列之告警监控
在SLS告警中,告警监控通过对数据源的查询监控,然后产生告警,并将告警发送到告警管理,告警管理会对告警进行降噪处理包括合并抑制静默后,在将告警发送给行动管理,最终发送通知到用户配置的接收渠道。在整个过程中,告警监控作为告警的源头,决定着告警是否能准确的发出。在配置告警监控规则时,配置不当或者配置错误都会导致告警不能触发或者不是希望的触发。本文主要介绍在告警监控中如何进行自助排查问题。
820 0
|
XML 缓存 监控
Android 性能优化(一): 启动优化理论与实践
本文章总结了目前市面上常见的一些启动优化常用手段,**开发和面试必备哦**
|
存储 Serverless
FreeType使用实例细节分析
FreeType使用实例细节分析
453 0
|
缓存 Android开发
Skia深入分析5——skia文字绘制的实现
文字绘制主要包括编码转换(主要是中文)、字形解析(点线或image)和实际渲染三个步骤。在这个过程中,字形解析和实际渲染均是耗时步骤。Skia对文字解析的结果做了一套缓存机制。在中文字较多,使用多种字体,绘制的样式(粗/斜体)有变化时,这个缓存会变得很大,因此Skia文字缓存做了内存上的限制。 1、SkPaint 文字绘制与SkPaint的属性相关很大,先回头看下SkPaint相关
7345 0
|
开发框架 JavaScript 前端开发
openHarmony子系统之JS-UI框架子系统
前天学习了openHarmony下如何创建一个组件,可能原理讲的还不是很好,今天就来聊聊背后的子系统,开始了~~
378 0
openHarmony子系统之JS-UI框架子系统
|
存储 编解码 索引
FreeType2使用指南
FreeType2使用指南
1229 0
|
XML API Android开发
Preference组件探究之源码解读
Preference组件探究之源码解读