日期:2014-05-16  浏览次数:20902 次

大家有没有遇到过“Line number out of range”的问题
最近在移植一个内核模块(2.6.8   ->   2.6.20),装上移植完成的内核,出现的问题是:用“rm”命令删除文件或文件夹时,系统就死机了。
        打上kgdb的补丁,因为没有2.6.20版本对应的kgdb,就把2.6.15.5版本的kgdb移植过来了,不过设置断点这个功能有问题。在调试状态下,用rm命令删除文件时,会显示:
----------------------------------
(gdb)   c
Continuing.
[New   thread   3797]
 
Program   received   signal   SIGSEGV,   Segmentation   fault.
[Switching   to   thread   3797]
kmem_cache_free   (cachep=0xcfee6b40,   objp=0xcd82d000)   at   bitops.h:246
Line   number   246   out   of   range;   bitops.h   has   61   lines.
----------------------------------
/linux/bitops.h确实只有61行,不知道为什么会出现246行,这个问题,大家有没有遇到过?

------解决方案--------------------
2.6.8 与 2.6.20 代码变动有很大的差别,这样做不合适,找相应的版本试。
要不你在打补丁时候需要手动加,并保证你的补丁没有问题才能使用,必须自己去看看补丁的位置及合理性