当前位置: 技术问答>linux和unix
内核2.4.20的一个bug?
来源: 互联网 发布时间:2016-02-18
本文导语: 调用wait_queue_interruptible时出现了段错误,是什么原因呢? | 我想把oops输出的调试信息贴出来,应该怎么弄呢?直接说挺难说明白,我使用了printk =============================================================...
调用wait_queue_interruptible时出现了段错误,是什么原因呢?
|
我想把oops输出的调试信息贴出来,应该怎么弄呢?直接说挺难说明白,我使用了printk
===================================================================================
这还不简单吗?直接在你的LINUX中开一个终端,通过MINICOM连到你的板子,然后insmod驱动,最后将输出的oops消息粘到文件文件中,不就贴出来了?不过贴出来也没用,不用看就知道是内存访问错误,引起这个问题的原因很多,你首先要弄懂wait_queue_interruptible的用法,用这个东东是需要一些初始化的,再搞清楚你使用这个东东的上下文,最后用排除法来定位错误(比如先屏掉N多代码,只留关键的,因为引起这个问题的原因也有可能是其它代码中的内存溢出等)
===================================================================================
这还不简单吗?直接在你的LINUX中开一个终端,通过MINICOM连到你的板子,然后insmod驱动,最后将输出的oops消息粘到文件文件中,不就贴出来了?不过贴出来也没用,不用看就知道是内存访问错误,引起这个问题的原因很多,你首先要弄懂wait_queue_interruptible的用法,用这个东东是需要一些初始化的,再搞清楚你使用这个东东的上下文,最后用排除法来定位错误(比如先屏掉N多代码,只留关键的,因为引起这个问题的原因也有可能是其它代码中的内存溢出等)
|
wait_queue_interruptible一般是不会出错的,你还是看看你使用的方法有没有对,比如在什么上下文当中使用这个涵数,参数是否有初始化等
|
最好把源码贴出来,光帖oop信息看不出来什么的,都是些内存错误信息,引起的原因很多,空指针,野指针等等。
|
最好能跟踪下wait_queue_interruptible()函数..
如简单的printk或者kdb简单的调试工具,并检测自己的驱动的其它的地方是否再中断中不应该调用的可休眠函数等..
如简单的printk或者kdb简单的调试工具,并检测自己的驱动的其它的地方是否再中断中不应该调用的可休眠函数等..