从今天开始,本姑娘决定记录所有的蓝屏故障。
连接所在的文章就是用Windbg分析Windows蓝屏具体原因的。
http://blog.sina.com.cn/s/blog_6ba6d89e0100upjz.html
各位看管请看,我的Windbg中的蓝屏提示信息如下:
Fatal System Error:0x0000000a (0x00000018,0x00000002,0x00000000,0x8052F5CE)
Break instruction exception-code 80000003 (first chance)
A fatal system error has occurred.
CURRENT_IRQL:2
LAST_CONTROL_TRANSFER:
我估计是我的内存访问权限问题,有可能是溢出了。
大牛们说:
0x0000000a...是属于IOQ或地址的代码
0x0000000a故障原因:
驱动程序使用了不正常的内存地址。
1. 1.如果Windows还可以启动,检查“事件查看器”中显示的信息,确定引起问题的设备或驱动程序。卸载有问题的设备或驱动,然后重新正确安装。 2.关掉或禁用一些新安装的驱动程序,并删除新安装的附加程序。 3.拆下一些新安装的硬件,如RAM、适配器、硬盘、调制解调器等等。 4.确保已经更新了硬件设备的驱动程序,以及系统有最新的BIOS。 5.运行由计算机制造商提供的系统诊断工具,尤其是内存检查。 6.检查Microsoft兼容硬件列表(HCL),确保所有的硬件和驱动程序都与Windows2000/NT兼容。 7.在BIOS中禁用内存缓存功能。 8.重新启动计算机。在启动屏幕处,按F8进入“高级启动选项”,然后选择“最后一次正确的配置”。 比较简单的方法有: 一、开机按F8,选择“最后一次正确配置”,WIN98就“STEPBYSTEP”,完全看不懂就按住“Y”不放。 二、清CMOS或者BIOS载入默认值; 三、重新插拔硬件,心情好也可以清理灰尘; 四、只使用一条内存测试; 五、送修; 六、人道毁灭。
高端调试:
http://advdbg.org/forums/1077/ShowPost.aspx
蓝屏问题故障排除:
1、我只是提醒一下楼主这个例程的IRQL会很高,而蓝的主要问题还是寻址,和 http://advdbg.org/forums/991/ShowPost.aspx 的问题类似。
8087dccc 803800 cmp byte ptr [eax],0 在取指针里的值比较的时候,访问的地址是 READ_ADDRESS: 00000002,所以我问楼主把什么参数传给了DbgPrint,下个断点跟踪一下应该就能找到问题的。
呵呵,线程优先级实验好呀...
2、你是在KiQuantumEnd() Release the thread lock 之后加的打印信息吧。 ;)
这时候的IRQL还没有降到DISPATCH level,不知道用DbgPrint()某些参数会不会有问题,我还没实验过。另外,你输出的格式有宽字符吗?用(%wc and %ws)宽字符会蓝的。
我觉得还是要从你出问题的地方下手,这是一寻址问题呀,你看看是什么指针访问了地址00000002。另外是每次都蓝还是偶尔蓝?
Ans:其实本姑娘用的是KdPrint()打印的,并且本姑娘确实试用了(%wc and %ws)宽字符,难道就是因为这个蓝屏的吗??
这面下个帖子:我觉得这个领域最多的还是要靠积累。
http://advdbg.org/forums/1077/ShowPost.aspx