调试模块的时候出现这个问题,看panic 系统调用堆栈,cpu执行到连接跟踪模块那里,难道是内核模块有问题?不可能,想起之前内核奔溃的教训,问题肯定是出在自己的模块上。又重新详细看日志,看到最后一行有个last unloaded ddos,这是我修改的模块,问题应该还是自己模块问题,反复定位,结果发现是卸载模块的时候没有释放定时器,导致定时器超时引起内核奔溃,以前也遇到过类似调试问题,在模块中启动定时器,卸载的时候忘记关闭了,导致内核奔溃。
[13449.459122] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
[13449.459122] Modules linked in: ddos(O) pppoe ppp_async
nf_nat_pptp iptable_nat nf_nat_snmp_basic nf_defrag_ipv4
gpio_button_hotplug [last unloaded: ddos]
本文深入探讨了一次内核崩溃的问题定位过程,作者在调试模块时发现内核崩溃的原因在于模块卸载时未正确释放定时器,这一错误曾多次引发内核崩溃。文章详细记录了从发现问题、定位问题到最终解决问题的全过程。
2601

被折叠的 条评论
为什么被折叠?



