首页 > 其他分享 >crash —— 内核符号和地址直接相互转换

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

时间:2023-09-24 12:23:08浏览次数:25  
标签:crash x86 request update 地址 内核 blk panic

通过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

完。

标签:crash,x86,request,update,地址,内核,blk,panic
From: https://www.cnblogs.com/pengdonglin137/p/17725811.html

相关文章

  • crash —— 获取所有内核符号
    查看所有的内核符号以及地址crash>sym-l0(D)__per_cpu_start0(D)irq_stack_union4000(D)cpu_debug_store5000(D)cpu_tss_rw8000(D)gdt_page9000(d)exception_stackse000(d)entry_stack_storagef000(D)espfix_waddrf008(D)espfix_stackf010(D)cpu......
  • crash —— 如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的
    需求有时我们有这样的需求,比如我们知道了结构体task_struct,然后我们又想知道内核中有哪些数据结构中包含了task_struct,或者包含了指向task_struct的指针。做法用whatis-m可以做到:crash>whatis-mtask_structSIZETYPE8rcuwait16core_thread16io_......
  • crash —— 如何获取指定大小范围的数据结构有哪些?
    crash——如何知道哪些数据结构内嵌了指定的数据结构或者内嵌了指向指定数据结构的指针......
  • crash —— 查看数据结构内部成员的偏移量和地址
    whatis如果提前知道数据类型的定义,可以直接用struct、union等,否则可以直接用whatis。crash>whatis-opagestructpage{[0]unsignedlongflags;union{struct{union{[8]structlist_headlru;......
  • crash —— 如何查看数据是什么类型以及函数原型
    在crash中可以用whatis命令查看数据类型信息以及函数的原型。如果想知道某个数据是什么类型那么可以用下面的方法:查看结构体的定义crash>whatismm_structstructmm_struct{struct{structmaple_treemm_mt;unsignedlong(*get_unmapped_area)(str......
  • Linux安装MySQL5.6:详细步骤及下载地址
    MySQL是一款常用的关系型数据库管理系统,而在Linux系统下安装MySQL5.6则是很多开发者和系统管理员们需要掌握的技能。本文将为大家详细介绍如何在Linux系统下安装MySQL5.6。第一步:下载MySQL5.6安装包首先,我们需要从MySQL官网上下载MySQL5.6的安装包。下载地址为:。选择适合自己系......
  • crash —— 获取系统的磁盘IO统计数据
    crash的dev命令可以获取系统磁盘IO的统计数据。获取所有磁盘的IO统计数据crash>dev-dMAJORGENDISKNAMEREQUEST_QUEUETOTALASYNCSYNC8ffff88de95d51000sdmffff88de94a90000653791776636038ffff88deb2396800sd......
  • crash —— 如何获取IO port和IO memory使用情况
    在linux中通过/proc/ioport和/proc/iomem可以获取系统的IO端口和内存的布局信息,在crash中需要使用dev命令来获取。crash>dev-iRESOURCERANGENAMEffffffff822668c00000-ffffPCIIOffff88deafffd5a00000-0cf7PCIBus0000:00ffffffff822407000000-......
  • crash —— 如何查看PCI设备拓扑?
    在linux系统上用lspci可以查看PCI设备信息,crash的dev命令也提供了这个功能。crash>dev-pROOTBUSBUSNAMEffff893eaeb430000000:00PCIDEVDO:BU:SL.FNCLASSPCI_IDTYPEffff88deaf8130000000:00:00.006008086:2020ROOT_PORTffff......
  • crash —— 如何获取某个系统调用入口代码?
    通过sys命令可以获取当前系统的系统调用的信息:crash>sys-cNUMSYSTEMCALLFILEANDLINENUMBER0__x64_sys_read../fs/read_write.c:6211__x64_sys_write../fs/read_write.c:6462__x64_sys_open../f......