cti*_*ist 21 linux debugging kernel core linux-kernel
Linux机器在启动和运行软件(包括自定义驱动程序)几小时后冻结.我正在寻找一种方法来调试这样的问题.最近,Linux内核调试技术有了很大的进步,不是吗?
我恳请分享一些关于这个主题的经验.
如果您可以在VM中重现问题,那么确实有一种相当新的(AFAIK)技术可能很有用:从运行它的主机调试虚拟机.
例如,请参阅: 使用Windows主机在VMWare中调试Linux内核
VMware Workstation 7还支持强大的技术,可让您确定性地记录系统执行,然后根据需要重放它,甚至可以向后重播.因此,一旦系统崩溃,您可以倒退,看看当时发生了什么(甚至尝试更改某些内容,看看它是否仍然崩溃).IIRC我在某处读到了你无法做到这一点并同时使用VMware/gdb调试内核.
显然,你需要一个VMM.我不知道除了VMware的VMM系列之外,VMM的支持是什么,我不知道是否有任何免费的VMware版本支持这一点.可能不是; 人们不能指望商业公司免费赠送一切.试用版是30天.
如果您的自定义驱动程序是针对机器内部的硬件,那么我认为这可能不起作用.