大家有没有遇到过“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 代码变动有很大的差别,这样做不合适,找相应的版本试。
要不你在打补丁时候需要手动加,并保证你的补丁没有问题才能使用,必须自己去看看补丁的位置及合理性