阅读:1832回复:12
需要版主或老牛级人物帮忙 关于skmon 或 regmon 的问题 (急~~~)
之前写的一个注册驱动.一直测试都没有问题,最近在某两台机器上蓝屏,每启必蓝. 但是在其它的机器上又没有问题. 想了很多办法.最近实在不行.我在那台机器上安装了SOFTICE.来调试,这时候又不出问题了,卸载之后又蓝,巨郁闷.~ 还请各位达人帮忙啊.
系统版本是 xpsp_sp2_gdr.050301-1519 Productid : 76481-640-0059266-23373,相同的,我有一个和这个版本一样的虚拟机,但不是一张光盘装的.也没安装过SoftICE,也没出问题.使用正常. 另外一台是蕃茄花园的,也是有蓝屏问题. 如果我那里没写清楚,请提醒,我补充上来.请大家帮忙啊..... |
|
沙发#
发布于:2007-06-20 12:35
看dump文件....
|
|
|
板凳#
发布于:2007-06-20 14:00
感谢znsoft热心关注. 我是个菜鸟,从来没看过dump文件.也不懂怎么看dump文件,刚刚在坛子里找了一下关于dump的贴子,也没搞懂.请指教.另外,我在我电脑上找了一下,除了找到dumprep.exe, savedump.exe和一个sys之外就没有相关的的字眼了.运行一下.生成一个.pf的文件,打开来是二进制文件,看不懂..
我把我蓝屏的地址贴出来:0X000000BE ( 0X8050240C, 0X00502121, 0XF9C2ABBC, 0X0000000B) .其中第三个地址是变的.第二次是 0X000000BE ( 0X8050240C, 0X00502121, 0XF9C1ABBC, 0X0000000B) 我这台机器没有SoftICE |
|
地板#
发布于:2007-06-20 14:19
写内存的错误,看dump文件的函数堆栈
|
|
|
地下室#
发布于:2007-06-20 14:38
嗯,刚刚查了一下,0X000000BE是 ATTEMPTED_WRITE_TO_READONLY_MEMORY 写内存出错,但是我怎么去查看dump文件呢.在那个地方有该文件.
|
|
5楼#
发布于:2007-06-20 14:39
怎么样才能找到dump文件,找到后又如何分析呢. 请教...
|
|
6楼#
发布于:2007-06-20 14:47
在我的电脑中,右键->属性->高级->启动和故障恢复->设置->系统失败->写入调试信息->改为核心内存转储
蓝掉后就会生成dump文件,在windows 目录下 memory.dmp 用windbg的open crash功能打开 !analyze -v |
|
|
7楼#
发布于:2007-06-20 14:53
会不会出问题的机器装的软件,和不出问题的机器相比,不一样啊
|
|
|
8楼#
发布于:2007-06-20 15:09
我也怀疑是某些软件的问题.但是我从开发到测试.一直没出现过这样的问题..可能我开发机系统"不干净"吧...新安装的了两面三刀个系统都有问题.一个是蓝屏,就是我刚刚打印的那段地址,另一台直接重启,什么都没有. .我试着比较了安装SoftICE和没安装之前的系统,tree /f 了一把.也没看出什么名堂来.还有安装softICE之后改了那些文件或系统变量,tree出来的目录树也没有文件大小的.
还是先试试znsoft的办法先.再次感谢 |
|
9楼#
发布于:2007-06-20 22:24
WinDBG如何加载符号文件,又如何找到相应的出错位置呢.好像要两台机器一起调试才能用.那用VM能不能和物理机联合调试呢.两台虚拟机行不行.
我按照znsoft的方法搞了,在WinDBG里显示信息如下: kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* ATTEMPTED_WRITE_TO_READONLY_MEMORY (be) An attempt was made to write to readonly memory. The guilty driver is on the stack trace (and is typically the current instruction pointer). When possible, the guilty driver's name (Unicode string) is printed on the bugcheck screen and saved in KiBugCheckDriver. Arguments: Arg1: 8050240c, Virtual address for the attempted write. Arg2: 00502121, PTE contents. Arg3: f9c2abbc, (reserved) Arg4: 0000000b, (reserved) Debugging Details: ------------------ ***** Kernel symbols are WRONG. Please fix symbols to do analysis. DEFAULT_BUCKET_ID: DRIVER_FAULT BUGCHECK_STR: 0xBE LAST_CONTROL_TRANSFER: from 8051cf07 to 804f9925 STACK_TEXT: WARNING: Stack unwind information not available. Following frames may be wrong. f9c2ab44 8051cf07 000000be 8050240c 00502121 nt!KeBugCheckEx+0x1b f9c2aba4 805406ec 00000001 8050240c 00000000 nt!MmTrimAllSystemPagableMemory+0x67db f9c2abbc f7b569ed badb0d00 000000f7 00000008 nt!Kei386EoiHelper+0x2674 f9c2ac30 f7b55dd3 8147dc08 00000005 00000000 RegMon+0x39ed f9c2ac7c 80576548 8147dc08 8130c000 00000000 RegMon+0x2dd3 f9c2ad4c 80576657 0000049c 00000001 00000000 nt!NtWriteFile+0x44a8 f9c2ad74 80534dd0 0000049c 00000000 81594640 nt!NtWriteFile+0x45b7 f9c2adac 805c5a06 f7ec5cf4 00000000 00000000 nt!ExQueueWorkItem+0x1b2 f9c2addc 80541fa2 80534cd0 00000001 00000000 nt!PsRemoveCreateThreadNotifyRoutine+0x21e 00000000 00000000 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x5a2 FOLLOWUP_IP: RegMon+39ed f7b569ed c70491d06ab5f7 mov dword ptr [ecx+edx*4],0xf7b56ad0 FOLLOWUP_NAME: MachineOwner SYMBOL_NAME: RegMon+39ed MODULE_NAME: Unknown_Module IMAGE_NAME: Unknown_Image DEBUG_FLR_IMAGE_TIMESTAMP: 0 STACK_COMMAND: kb BUCKET_ID: WRONG_SYMBOLS Followup: MachineOwner --------- 我不会用WinDBG调试.我用SoftICE找到相应的位置,是查找注册表全名的函数里小写变大写的那个函数入口的问题.我把这段代码注释掉了(所有操作直接返回系统函数),还是不行.不知道是不是我判断出错地址错误还是怎么样回事,请 znsoft 或其他大牛指教.谢谢!! |
|
10楼#
发布于:2007-06-21 00:37
找了一晚上关于WinDBG的资料.那个xp的symbol好大,才下了2%. 晚安,希望明天有人能指点一下.
|
|
11楼#
发布于:2007-06-21 10:57
虚拟机和物理机连上了.现在在虚拟机下启动RegMon出错的消息被WinDBG捕获到了.但是如何加载源程序呢.怎么和SoftICE的加载方法不一样呢.
|
|
12楼#
发布于:2007-06-21 23:54
基本上找到问题了,明天再测试一下,谢谢znsoft 和 driverdance 指点
|
|