crash —— 获取内核和模块的符号

简介: crash —— 获取内核和模块的符号

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

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
相关文章
|
6月前
|
C语言
内核源码中遇到不会解析的宏怎么办?
内核源码中遇到不会解析的宏怎么办?
229 1
|
1天前
|
网络协议 Linux 数据处理
系统库调用运行在内核模式
【10月更文挑战第29天】系统库调用是应用程序与操作系统内核之间的重要桥梁,部分关键的系统库调用会运行在内核模式下,以实现对受限资源的访问、保证系统的稳定性和安全性以及协调多任务和资源共享等功能。了解系统库调用与内核模式的关系,对于深入理解操作系统的工作原理和应用程序的运行机制具有重要意义。
16 3
|
2月前
crash —— 内核符号和地址直接相互转换
crash —— 内核符号和地址直接相互转换
|
6月前
|
算法 网络协议 Linux
Linux模块文件编译到内核与独立编译成.ko文件的方法
Linux模块文件编译到内核与独立编译成.ko文件的方法
1398 0
将模块编译入内核
将模块编译入内核
107 0
|
Ubuntu C语言 C++
ubuntu编译高阶数组出现段错误(核心已转储)问题
在ubuntu中编译C语言不允许直接定义高阶数组如: int arr[3000][3000];
ubuntu编译高阶数组出现段错误(核心已转储)问题
|
搜索推荐 Linux Windows
重编译LINUX内核调整SCTP参数的方法
经过在网络上用搜索引擎反复查找LINUX\SCTP相关资料,才发现LINUX内核2.6.18版本的SCTPINIT强制性添置ECN、ADAPTATION参赛,Forwrd TSN参数可以通过/proc/sys/net/sctp进行开关配置(0携带1不携带)。INIT_ACK消息则强制携带ECN、ADAPTATION参数。在找到这个结果之前经历了很多的误区,如修改LKSCTP、OPENSS7等。这些都是徒劳。
|
网络协议 Unix Linux
嵌入式 uboot以及kernel添加看门狗临时记录(个人记录未整理乱)
Uboot_Kernerl_Add_Watch_Dog:   U-Boot 2010.06 (Nov 01 2013 - 15:28:44) DRAM:  128 MiBCheck spi flash controller v350.
5334 0
VS无法断点调试,编译时为生成pdb文件,不包含调试信息(未加载任何符号)
VS无法断点调试,编译时为生成pdb文件,不包含调试信息(未加载任何符号)
501 0