在模块中,通过查询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\n", (u32)data);

  15:     unsigned long i = 0;

  16:     for (i=0;i<16;i++)

  17:     {

  18:         printk("%4X", i);

  19:     }

  20:     printk("\n");

  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\n", lineSummary);

  35:                 memset(lineSummary, 0, 17);

  36:             }

  37:             else

  38:             {

  39:                 printk("\n");

  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\n", lineSummary);

  64:     printk("\n");    

  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\n", item, item->s_id);

  75:     }

  76: }

  77:  

  78: static int pslist_init()

  79: {

  80:     printk("###################################################################\n");

  81:     AnalyzeSuperBlock();

  82:     return 0;

  83: }

  84:  

  85: static void pslist_exit()

  86: {

  87:     printk("###################################################################\n");

  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] ###################################################################

super_blocks没有导出的更多相关文章

  1. premere cs4绿色版 安装 并且 视频导出 讲解

    最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...

  2. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  4. Hawk 5.1 数据导入和导出

    除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...

  5. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  8. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  9. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

随机推荐

  1. UML的类型

    分类 UML从考虑系统的不同角度出发,定义了用例图.类图.对象图.包图.状态图.活动图.序列图.协作图.构件图.部署图等10种图. 常见的UML图有用例图(Use Case Diagram).类图(C ...

  2. ASP.NET Core学习——7

    多环境ASP.NET Core介绍了支持在多种环境中管理应用程序行为的改进,如开发(devlopment),预演(staging)和生成(production).环境变量用来指示应用程序正在运行的环境 ...

  3. ASP.NET Core学习——6

    依赖注入DI ASP.NET Core的底层设计支持和使用依赖注入.ASP.NET Core应用程序可以利用内置的框架服务将它们注入到启动类的方法中,并且应用程序服务能够配置注入. 1.什么是依赖注入 ...

  4. MySQL 小数处理函数 round 和 floor

    一. 在mysql中,round函数用于数据的四舍五入,它有两种形式: 1.round(x,d)  ,x指要处理的数,d是指保留几位小数 这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的 ...

  5. PHP 换行处理

    换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echo PHP_EOL; // ...

  6. (转)Git 提交的正确姿势:Commit message 编写指南

    Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交. $ git commit -m "hello world" 上面代码的-m参数,就是用来 ...

  7. 2.Prometheus安装部署

    环境准备 2台Linux操作系统(基于centos7) docker环境 配置 IP 角色 版本 192.168.229.139 prometheus-server 2.10 192.168.229. ...

  8. C. Ancient Berland Circus(三点确定最小多边形)

    题目链接:https://codeforces.com/problemset/problem/1/C 题意:对于一个正多边形,只给出了其中三点的坐标,求这个多边形可能的最小面积,给出的三个点一定能够组 ...

  9. 基于MFC的Media Player播放器的制作(4---功能实现代码)

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h // PandaPlayerDlg.h : header file // //{{AFX_INCLUDE ...

  10. 在JMeter测试计划中如何控制业务比例

    作者:Selingchen 来源:CSDN 原文:https://blog.csdn.net/selingchen/article/details/47844375