首页 > 其他分享 >crash —— 获取所有内核符号

crash —— 获取所有内核符号

时间:2023-09-24 11:56:55浏览次数:36  
标签:kernel kvm crash fq 符号 MODULE 内核 codel hypercall

查看所有的内核符号以及地址

crash> sym -l
0 (D) __per_cpu_start
0 (D) irq_stack_union
4000 (D) cpu_debug_store
5000 (D) cpu_tss_rw
8000 (D) gdt_page
9000 (d) exception_stacks
e000 (d) entry_stack_storage
f000 (D) espfix_waddr
f008 (D) espfix_stack
f010 (D) cpu_llc_id
...
41a80 (d) rt_uncached_list
41ac0 (d) rt6_uncached_list
42000 (d) kvm_apic_eoi
42040 (D) steal_time
42080 (d) apf_reason
43000 (D) __per_cpu_end
ffffffff81000000 (T) _stext
ffffffff81000000 (T) _text
ffffffff81000000 (T) startup_64
ffffffff81000030 (T) secondary_startup_64
ffffffff810000f0 (T) verify_cpu
ffffffff810001f0 (T) start_cpu0
ffffffff81000200 (T) __startup_64
ffffffff81001000 (T) hypercall_page
ffffffff81001000 (t) xen_hypercall_set_trap_table
ffffffff81001020 (t) xen_hypercall_mmu_update
ffffffff81001040 (t) xen_hypercall_set_gdt
ffffffff81001060 (t) xen_hypercall_stack_switch
ffffffff81001080 (t) xen_hypercall_set_callbacks
ffffffff810010a0 (t) xen_hypercall_fpu_taskswitch
ffffffff810010c0 (t) xen_hypercall_sched_op_compat
...
ffffffffa0d8f9b8 (b) ipmi_user
ffffffffa0d8f9c0 (b) ready
ffffffffa0d8f9c4 (b) poweroff_powercycle
ffffffffa0d91000 MODULE END: ipmi_poweroff

搜索含有指定字符串的内核符号

crash> sym -q kernel
16be8 (d) in_kernel_fpu
177e0 (D) kernel_cpustat
ffffffff81007cd0 (T) perf_callchain_kernel
ffffffff81029db0 (t) dump_kernel_offset
ffffffff8102d860 (T) arch_check_bp_in_kernelspace
ffffffff810304c0 (T) __kernel_fpu_end
ffffffff810304e0 (T) kernel_fpu_end
ffffffff810307f0 (T) __kernel_fpu_begin
ffffffff81030870 (T) kernel_fpu_begin
ffffffff810324d0 (T) copy_xstate_to_kernel
ffffffff81032980 (T) copy_kernel_to_xstate
ffffffff8105f000 (T) relocate_kernel
ffffffff8106a230 (t) pmd_populate_kernel.constprop.21
ffffffff8106aa50 (T) kernel_ident_mapping_init
...

获取所有内核模块的符号

crash> sym -M
ffffffffa0002000 MODULE START: sch_fq_codel
ffffffffa0002000 (t) qdisc_pkt_len
ffffffffa0002010 (t) qdisc_peek_dequeued
ffffffffa0002070 (t) codel_get_enqueue_time
ffffffffa0002080 (t) dequeue_func
ffffffffa00020e0 (t) fq_codel_leaf
ffffffffa00020f0 (t) fq_codel_find
ffffffffa0002100 (t) fq_codel_bind
ffffffffa0002110 (t) fq_codel_unbind
ffffffffa0002120 (t) fq_codel_tcf_block
ffffffffa0002140 (t) fq_codel_dump_class
ffffffffa0002150 (t) fq_codel_dump
ffffffffa0002380 (t) fq_codel_destroy
ffffffffa00023b0 (t) codel_vars_init
...
ffffffffa0005060 (d) fq_codel_qdisc_ops
ffffffffa0005108 (d) __warned.58506
ffffffffa0005140 (d) __this_module
ffffffffa0007000 MODULE END: sch_fq_codel
ffffffffa0008000 MODULE START: loop
ffffffffa0008000 (t) loop_validate_file
...
ffffffffa000e7a0 (b) none_funcs
ffffffffa000e7d0 (b) part_shift
ffffffffa000e7d4 (b) max_part
ffffffffa0010000 MODULE END: loop
ffffffffa0011000 MODULE START: bonding
ffffffffa0011000 (t) bond_get_nest_level
ffffffffa0011010 (t) bond_neigh_setup
ffffffffa0011030 (t) bond_select_queue
ffffffffa0011080 (t) bond_change_rx_flags
ffffffffa00111f0 (t) bond_should_notify_peers
...
ffffffffa0040000 MODULE END: bonding

获取指定内核模块的符号

crash> sym -m kvm
ffffffffa0105000 MODULE START: kvm
43008 (d) cpu_tsc_khz
43010 (D) current_vcpu
ffffffffa0105000 (t) ack_flush
ffffffffa0105010 (T) kvm_get_kvm
ffffffffa0105030 (T) kvm_disable_largepages
ffffffffa0105040 (t) kvm_vcpu_mmap
ffffffffa0105060 (t) kvm_device_mmap
ffffffffa0105090 (t) kvm_io_bus_sort_cmp
ffffffffa01050d0 (t) vm_stat_get_per_vm
...
ffffffffa019c020 (b) kvm_total_used_mmu_pages
ffffffffa019c048 (b) mmu_page_header_cache
ffffffffa019c050 (b) pte_list_desc_cache
ffffffffa01c4000 MODULE END: kvm

标签:kernel,kvm,crash,fq,符号,MODULE,内核,codel,hypercall
From: https://www.cnblogs.com/pengdonglin137/p/17725791.html

相关文章

  • 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;......
  • 提取符号前的数字
    问题:提取g/m2前的数字函数公式解决:=-LOOKUP(1,-RIGHT(LEFT(A2,FIND("g/",A2)-1),ROW($1:$9)))先使用Left套Find,把“g/”前所有字符都提取出来,效果如下:再使用-Lookup(1,-right...把数字提取出来。以C2结果为例,用Right函数从右开始逐个增加提取以上结果前面加上负号,其......
  • crash —— 如何查看数据是什么类型以及函数原型
    在crash中可以用whatis命令查看数据类型信息以及函数的原型。如果想知道某个数据是什么类型那么可以用下面的方法:查看结构体的定义crash>whatismm_structstructmm_struct{struct{structmaple_treemm_mt;unsignedlong(*get_unmapped_area)(str......
  • 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......
  • 浏览器内核和js引擎
    浏览器内核是什么?简而言之,浏览器内核就是把我们编写的代码转换为页面的中控件。虽然现在大家谈起浏览器内核时,多指代渲染引擎(Renderingengine或layoutengineer)。但其实浏览器内核包括了两部分,渲染引擎和JS引擎,只是后来JS引擎用的越来越多所以就单独的把JS引擎拿了出来。 Ja......