IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    kgdb调试内核模块

    Qiang发表于 2011-12-22 07:29:42
    love 0

    kgdb的详细用法就不多说了,只说说怎么调试内核模块,因为内核模块的符号地址信息并没有包含在vmlinux里,所以需要载入模块的信息:

    gdb加载内核模块的命令为:

    ?View Code BASH
    1
    
    add-symbol-file FILE ADDR

    找到ADDR最直接的方法就是:在插入模块之前,在kernel/module.c中设置一个断点,因为函数module_alloc_update_bounds返回的是模块的地址:

    ?View Code C
    1
    
    2097 ptr = module_alloc_update_bounds(mod->core_size);

    所以:

    ?View Code BASH
    1
    
    gdb > b kernel/module.c:2097

    这样你就可以看到模块的地址了,后面就好办了,你可以在模块里的任意函数设断点了。



沪ICP备19023445号-2号
友情链接