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

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

以下面的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,
相关文章
|
域名解析 弹性计算 Apache
WordPress自助建站教程
本场景将基于一台基础环境为CentOS 7.8的ECS(云服务器)实例,在LAMP环境中安装WordPress,帮助您快速搭建自己的云上博客。
|
存储 Cloud Native Linux
C++封装了socket通信类
C++封装了socket通信类
|
1月前
|
IDE 编译器 开发工具
MSVC,VC++ 运行时库,msvcp140.dll,msvcp120.dll等报错
本文介绍了Microsoft Visual C++(MSVC)的核心概念、运行时库及其在Windows平台开发中的应用。内容涵盖MSVC的编译器、链接器、调试工具等核心组件,以及MSVC版本与Visual Studio的对应关系。同时解析了VC++运行时库(如msvcp140.dll)的作用和安装方式,帮助开发者理解程序依赖的底层机制,并提供常见问题的解决参考链接。
240 3
crash —— 查看数据结构内部成员的偏移量和地址
crash —— 查看数据结构内部成员的偏移量和地址
|
存储 测试技术 Linux
深入了解KUnit:Linux内核新一代单元测试工具(上)
深入了解KUnit:Linux内核新一代单元测试工具
|
11月前
|
JSON 测试技术 数据格式
Playwright 测试报告器
Playwright 测试报告器
393 4
|
IDE Linux 程序员
技术经验解读:【转】IO空间,IO端口,MMIO
技术经验解读:【转】IO空间,IO端口,MMIO
875 0
|
运维 NoSQL Ubuntu
深入理解Linux中的"crash"命令:内核崩溃的调试利器
`crash`是Linux内核崩溃调试工具,用于分析内核崩溃转储文件,提供GDB-like的交互式CLI。通过加载`vmcore`文件和内核映像,管理员可以查看系统状态、调用栈、内存布局等。安装`crash`可使用包管理器,如`apt-get`或`yum/dnf`。尽管有学习曲线且依赖转储文件,但`crash`在系统故障排查中极其重要。
|
算法 Unix Linux
Linux进程与信号:正常与异常的退出机制探索
Linux进程与信号:正常与异常的退出机制探索
938 1
|
存储
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍
1178 3