crash —— 内核符号和地址直接相互转换

简介: crash —— 内核符号和地址直接相互转换

通过sym可以将内核地址转换成内核符号,或者将内核符号转换成内核地址。

根据地址转换为符号

  • 函数地址
crash> sym ffffffff8166f300
ffffffff8166f300 (T) blk_update_request+16 /home/pengdl/x86_64/linux-6.2/block/blk-mq.c: 896
  • 全局变量
crash> sym -q panic_on_o
ffffffff83968fa8 (D) panic_on_overflow
ffffffff844c3dc4 (B) panic_on_oops
ffffffff85001110 (b) sysctl_panic_on_oom
crash> sym panic_on_oops
ffffffff844c3dc4 (B) panic_on_oops

将符号转换为地址

  • 函数
crash> sym -q blk_update_request
ffffffff8166f2e0 (T) __pfx_blk_update_request
ffffffff8166f2f0 (T) blk_update_request
ffffffff82165cbc (t) blk_update_request.cold.77
ffffffff82f4c090 (r) __ksymtab_blk_update_request
ffffffff82f6d89b (r) __kstrtab_blk_update_request
ffffffff82f7ac70 (r) __kstrtabns_blk_update_request
crash> sym blk_update_request
ffffffff8166f2f0 (T) blk_update_request /home/pengdl/x86_64/linux-6.2/block/blk-mq.c: 893
  • 全局变量
crash> sym -q panic_on_o
ffffffff83968fa8 (D) panic_on_overflow
ffffffff844c3dc4 (B) panic_on_oops
ffffffff85001110 (b) sysctl_panic_on_oom
crash> sym panic_on_oops
ffffffff844c3dc4 (B) panic_on_oops

在输出时,还可以通过-pn参数实现在输出指定内核符号或者地址的同时,将紧跟他的前面和后面一个符号进行输出。

crash> sym -pn ffffffff8166f300
ffffffff8166f2e0 (T) __pfx_blk_update_request /home/pengdl/x86_64/linux-6.2/./arch/x86/include/asm/atomic.h: 67
ffffffff8166f300 (T) blk_update_request+16 /home/pengdl/x86_64/linux-6.2/block/blk-mq.c: 896
ffffffff8166f7b0 (T) __pfx_blk_mq_end_request /home/pengdl/x86_64/linux-6.2/./include/trace/events/block.h: 163
crash> sym -pn blk_update_request
ffffffff8166f2e0 (T) __pfx_blk_update_request /home/pengdl/x86_64/linux-6.2/./arch/x86/include/asm/atomic.h: 67
ffffffff8166f2f0 (T) blk_update_request /home/pengdl/x86_64/linux-6.2/block/blk-mq.c: 893
ffffffff8166f7b0 (T) __pfx_blk_mq_end_request /home/pengdl/x86_64/linux-6.2/./include/trace/events/block.h: 163

完。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
crash —— 获取内核和模块的符号
crash —— 获取内核和模块的符号
|
存储 C语言 C++
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
C语言之数据的存储2(浮点数在内存中如何存储,如何输出,查看不同类型数据在内存中表示的范围的方法,十进制浮点数转化为二进制的方法)
128 0
|
2月前
crash —— 将flags转换成可读的字符
crash —— 将flags转换成可读的字符
|
5月前
|
C语言
C语言---二进制位置0或者置1
C语言---二进制位置0或者置1
|
6月前
|
存储
ARM 堆栈寻址类型区分
该文介绍了堆栈的两种指向分类:向上生成型(递增堆栈)和向下生成型(递减堆栈),以及堆栈的两种数据状态:满堆栈(指针指向最后数据)和空堆栈(指针指向存放数据的位置)。满递增和满递减是在完整数据单元上操作,而空递增和空递减则允许自定义步长。文中通过图示说明了不同情况下的堆栈存储方式。
69 3
|
5月前
|
存储 C语言
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
C语言---求一个整数存储在内存中的二进制中1的个数--3种方法
|
6月前
|
5G
MFC编程 -- 浮点数与字符串之间转换
MFC编程 -- 浮点数与字符串之间转换
106 1
|
存储 自然语言处理 编译器
BIT-7文件操作和程序环境(16000字详解)
BIT-7文件操作和程序环境(16000字详解)
77 0
|
存储 小程序 C语言
【C语言】请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序
简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序