• super_blocks没有导出


    在模块中,通过查询super_blocks列表,来遍历系统中的所有super_block,但是出现与下面类似的错误:

    http://stackoverflow.com/q/5051111/941650

    也可以参考他的解决方法,到System.map中去查找真实地址,不过这样不是解决问题的最好方法。

    先贴出当前的代码

       1: #include <linux/module.h>
       2: #include <linux/fs.h>
       3:  
       4: MODULE_LICENSE("GPL");
       5:  
       6:  
       7: void printRawData(unsigned long size, const u_char* data)
       8: {
       9:     if (size == 0)
      10:     {
      11:         return;
      12:     }
      13:  
      14:     printk("Memory at 0x%08x
    ", (u32)data);
      15:     unsigned long i = 0;
      16:     for (i=0;i<16;i++)
      17:     {
      18:         printk("%4X", i);
      19:     }
      20:     printk("
    ");
      21:     for (i=0;i<16;i++)
      22:     {
      23:         printk("%4s", "__");
      24:     }
      25:  
      26:     char lineSummary[17] = {0,};
      27:     unsigned long pos = 0;
      28:     for (i=0;i<size;i++)
      29:     {
      30:         if ((pos = i % 16) == 0)
      31:         {
      32:             if (i != 0)
      33:             {
      34:                 printk(" ---- %s
    ", lineSummary);
      35:                 memset(lineSummary, 0, 17);
      36:             }
      37:             else
      38:             {
      39:                 printk("
    ");
      40:             }        
      41:         }
      42:  
      43:         printk("  %02X", *(data + i));
      44:  
      45:         if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)
      46:         {
      47:             lineSummary[pos] = *(data + i);
      48:         }
      49:         else
      50:         {
      51:             lineSummary[pos] = ' ';
      52:         }
      53:     }
      54:  
      55:     if (size % 16 != 0)
      56:     {
      57:         for (i=0;i<16 - (size%16);i++)
      58:         {
      59:             printk("    ");
      60:         }
      61:     }
      62:  
      63:     printk(" ---- %s
    ", lineSummary);
      64:     printk("
    ");    
      65: }
      66:  
      67: void AnalyzeSuperBlock()
      68: {
      69:     struct super_block* item;
      70:     struct list_head * super_blocks = 0xc1778bc0;
      71:  
      72:     list_for_each_entry(item,super_blocks,s_list)
      73:     {
      74:         printk("super_block 0x%08X %s
    ", item, item->s_id);
      75:     }
      76: }
      77:  
      78: static int pslist_init()
      79: {
      80:     printk("###################################################################
    ");
      81:     AnalyzeSuperBlock();
      82:     return 0;
      83: }
      84:  
      85: static void pslist_exit()
      86: {
      87:     printk("###################################################################
    ");
      88: }
      89:  
      90:  
      91:  
      92: module_init(pslist_init);
      93: module_exit(pslist_exit);

    结果:

       1: [153479.359674] ###################################################################
       2: [153479.359677] super_block 0xF5404800 sysfs
       3: [153479.359678] super_block 0xF5404A00 rootfs
       4: [153479.359679] super_block 0xF5404C00 bdev
       5: [153479.359680] super_block 0xF5404E00 proc
       6: [153479.359681] super_block 0xF545AC00 tmpfs
       7: [153479.359682] super_block 0xF545AE00 devtmpfs
       8: [153479.359683] super_block 0xF5464400 debugfs
       9: [153479.359684] super_block 0xF5464A00 sockfs
      10: [153479.359685] super_block 0xF551F800 pipefs
      11: [153479.359686] super_block 0xF551FA00 anon_inodefs
      12: [153479.359686] super_block 0xF551FC00 securityfs
      13: [153479.359687] super_block 0xF5792200 devpts
      14: [153479.359688] super_block 0xF57A8000 hugetlbfs
      15: [153479.359689] super_block 0xF57A8800 mqueue
      16: [153479.359690] super_block 0xF4C57000 sysfs
      17: [153479.359691] super_block 0xF4C4AC00 tmpfs
      18: [153479.359692] super_block 0xF4DB3C00 fusectl
      19: [153479.359693] super_block 0xF4D57000 sda1
      20: [153479.359694] super_block 0xF4C99600 tmpfs
      21: [153479.359695] super_block 0xF4D3CC00 tmpfs
      22: [153479.359696] super_block 0xEF20DC00 binfmt_misc
      23: [153479.359697] super_block 0xF2F23C00 vboxsf
      24: [153479.359698] super_block 0xEF12AA00 vboxsf
      25: [153479.359699] super_block 0xEE76B800 vboxsf
      26: [153479.359700] super_block 0xF2CBC600 fuse
      27: [153479.359701] super_block 0xEDA70400 vboxsf
      28: [153479.361922] ###################################################################
  • 相关阅读:
    JQuery.Ajax()的data参数类型
    通过拖动表格行进行行排序
    jquery animate()背景色渐变的处理
    JavaScript代码不执行
    Java性能调优笔记
    tika提取pdf信息异常
    Solr字段配置错误
    Oracle查询字符集
    zookeeper中Watcher和Notifications
    zookeeper适用场景:分布式锁实现
  • 原文地址:https://www.cnblogs.com/long123king/p/3534664.html
Copyright © 2020-2023  润新知