linux下oops与ksymoops、System.map和kallsyms的关系

linux 专栏收录该内容
30 篇文章 0 订阅

一.oops与ksymoops、System.map的关系

在oops调试中要想生成更多的有用信息就要使回溯的地址转换成有意义的符号名称才方便使用。在2.5内核以前是使用ksymoops命令和内核编译时产生的System.map文件来将地址转换成有意义的符号名称。

二.oops与kallsyms的关系

在2.5内核以后,linux内核不再使用ksymoops命令和内核编译时产生的System.map文件来将地址转换成有意义的符号名称了。而使用kallsyms来将oops中的回溯地址转换为有意义的符号名称。在使用过程中要配置内核开启CONFIG_KALLSYMS选项。该选项中存放内核镜像中相应函数地址的符号名称。CONFIG_KALLSYMS_ALL选项不仅仅存放符号名称还会存放其他的所有符号名称。只有在一些特殊调试器中才会使用此选项CONFIG_KALLSYMS_EXTRA_PASS选项会引起内核构建过程中再次忽略内核的目标代码。一般用在调试kallsyms本身时才会有用。
配置kallsyms后会使编译出来的内核变大,因为从函数的地址到名称的映射会永久地驻留在内核镜像中。
用户可以通过/proc/kallsyms文件来查看kallsyms生成的符号表,但是得用管理员身份来查看。

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值