Chinaunix首页 | 论坛 | 博客
  • 博客访问: 769672
  • 博文数量: 196
  • 博客积分: 115
  • 博客等级: 民兵
  • 技术积分: 354
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-13 23:19
文章分类

全部博文(196)

文章存档

2021年(1)

2019年(5)

2018年(11)

2017年(15)

2016年(13)

2015年(46)

2014年(81)

2013年(22)

2012年(2)

分类: LINUX

2017-02-27 20:24:01

原文地址:Crash工具加载模块符号 作者:humjb_1983

一、问题:
在使用crash工具分析vmcore时,常会遇到内核模块符号不能解析的问题,如:
crash> struct igbadapter 0xffff81032bef56b8
struct: invalid data structure reference: igbadapter

二、原因:
那是因为没有找到igb驱动模块的符号信息。原因为:只使用了vmlinux文件(包含内核符号),而其它的单独加载的内核模块的符号信息实际是没有包含在vmlinux文件中的,需要使用单独加载。
模块的debug符号信息在kernel-debuginfo包(针对redhat系发行版)中有。所以,其实只需要安装kernel-debuginfo包就可以了。

三、解决
加载相应的符号信息后就即可正常访问。具体如下:
crash> mod -s igb /usr/lib/debug/lib/modules/2.6.18-164.el5/kernel/drivers/net/igb/igb.ko.debug
     MODULE       NAME                  SIZE  OBJECT FILE
ffffffff88285380  igb                 116181  /usr/lib/debug/lib/modules/2.6.18-164.el5/kernel/drivers/net/igb/igb.ko.debug 
crash> struct igb_adapter
struct igb_adapter {
    struct timer_list watchdog_timer;
    struct timer_list phy_info_timer;
    struct vlan_group *vlgrp;
    u16 mng_vlan_id;
    u32 bd_number;
    u32 rx_buffer_len;
    u32 wol;
    u32 en_mng_pt;
    u16 link_speed;
    u16 link_duplex;
    unsigned int total_tx_bytes;
    unsigned int total_tx_packets;
    unsigned int total_rx_bytes;
    unsigned int total_rx_packets;
    u32 itr;
    u32 itr_setting;
    u16 tx_itr;
    u16 rx_itr;
    struct work_struct reset_task;
    struct work_struct watchdog_task;
    bool fc_autoneg;
...

阅读(2460) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~