首页 > 其他分享 >crash —— 如果知道结构体内部某个成员的地址,如何输出结构体内容?

crash —— 如果知道结构体内部某个成员的地址,如何输出结构体内容?

时间:2023-09-24 21:33:38浏览次数:37  
标签:task crash struct int unsigned rq 地址 结构

以下面的task_struct为例:

crash> *task_struct -ox ffff893e3846e000
struct task_struct {
  [ffff893e3846e000] struct thread_info thread_info;
  [ffff893e3846e010] volatile long state;
  [ffff893e3846e018] void *stack;
  [ffff893e3846e020] atomic_t usage;
  [ffff893e3846e024] unsigned int flags;
  [ffff893e3846e028] unsigned int ptrace;
  [ffff893e3846e030] struct llist_node wake_entry;
  [ffff893e3846e038] int on_cpu;
  [ffff893e3846e03c] unsigned int cpu;
  [ffff893e3846e040] unsigned int wakee_flips;
  [ffff893e3846e048] unsigned long wakee_flip_decay_ts;
  [ffff893e3846e050] struct task_struct *last_wakee;
  [ffff893e3846e058] int recent_used_cpu;
  [ffff893e3846e05c] int wake_cpu;
  [ffff893e3846e060] int on_rq;
  [ffff893e3846e064] int prio;
  [ffff893e3846e068] int static_prio;
  [ffff893e3846e06c] int normal_prio;
...
}

假如知道了on_rq成员的地址ffff893e3846e060,然后我想获取commmm的值.

有两种做法,第一种是获取on_rqtask_struct内部的偏移量,然后相减得到task_struct的首地址,然后就可以获取任何一个成员的值。

下面介绍第二种:

crash> *task_struct.comm,mm -l task_struct.on_rq 0xffff893e3846e060
  comm = "sh\000entry.sh\000]\000\000",
  mm = 0xffff893cb80fd000,

标签:task,crash,struct,int,unsigned,rq,地址,结构
From: https://www.cnblogs.com/pengdonglin137/p/17726721.html

相关文章

  • crash —— 查看进程的mm_struct内容
    方法1使用ps获取进程的task_struct地址,然后得到mm_struct地址crash>ps|grepbash6666962538ffff88a07fd42000IN0.0242683048bash82885963614ffff88fdc4678000IN0.0275001972bash8581858025ffff88dda33a0000IN......
  • 高效的浏览 Linux 目录结构:pushd和popd命令
    在这个教程中,我们将讨论两个相关的命令:pushd和popd,使用它们可以高效的浏览Linux目录结构。这两个命令在大多数 shell ,比如bash、tcsh中都存在。pushd和popd命令在Linux系统中如何工作pushd和popd命令根据‘LIFO’(后进先出)原则工作。在这个原则之下,只有两个操作是允......
  • crash —— 查看进程的vma结构体
    crash提供了vm命令来输出进程的vma相关的信息。输出当前当进程的vma列表crash>vmPID:3319TASK:ffff889760358000CPU:6COMMAND:"kvm"MMPGDRSSTOTAL_VMffff893ada165000ffff893a8c4e200045772k9535832kVMA......
  • #yyds干货盘点# LeetCode程序员面试金典:全 O(1) 的数据结构
    1.简述:请你设计一个用于存储字符串计数的数据结构,并能够返回计数最小和最大的字符串。实现 AllOne 类:AllOne() 初始化数据结构的对象。inc(Stringkey) 字符串 key 的计数增加 1 。如果数据结构中尚不存在 key ,那么插入计数为 1 的 key 。dec(Stringkey) 字符串 k......
  • 【4.0】Pandas Panel三维数据结构
    【一】三维数据结构Panel结构也称“面板结构”,它源自于PanelData一词,翻译为“面板数据”。如果您使用的是Pandas0.25以前的版本,那么您需要掌握本节内容,否则,作为了解内容即可。自Pandas0.25版本后,Panel结构已经被废弃。Panel是一个用来承载数据的三维数据结构,它......
  • crash —— 获取slub的详细信息
    在linux系统中可以通过/proc/slabinfo获取slab的统计数据,crash提供了kmem来实现这个功能。查看系统每个kmem_cache的概要信息crash>kmem-sCACHEOBJSIZEALLOCATEDTOTALSLABSSSIZENAMEffff888141e12000131072000128......
  • crash —— 将flags转换成可读的字符
    将page的flags转换为可读字符串crash>kmem-g01fffe00000a001cFLAGS:1fffe00000a001cPAGE-FLAGBITVALUEPG_referenced20000004PG_uptodate30000008PG_dirty40000010PG_reclaim170020000PG_unevictable19......
  • crash —— 查看当前系统每个page的信息
    linux中page数据结构可以通过mem_map数组访问,下面的方法可以输出每个page的相关成员。通用版本下面这个命令可以显示每个page的一些关键成员的值。crash>kmem-pPAGEPHYSICALMAPPINGINDEXCNTFLAGSffffea000000000000......
  • crash —— 获取系统NODE、ZONE、SECTION、MEMBLOCK等信息
    crash>kmem-nNODESIZEPGLIST_DATABOOTMEM_DATANODE_ZONES0100925439ffff88e03ffc1000----ffff88e03ffc1000ffff88e03ffc5000......
  • crash —— 获取vmalloc分配信息
    crash>kmem-vVMAP_AREAVM_STRUCTADDRESSRANGESIZEffff88debf51c900ffff88debf53bd00ffffc90000000000-ffffc900000020008192ffff88debf51cf60ffff88debf53bd40ffffc90000002000-ffffc90000004000......