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