阅读:1403回复:8
STOP信息在什么地方看啊????
**STOP: 0xD1,(FB624FE8,2,0,F1878B8)
*** ADDRESS F1878B8 BASE AT F1878000 DATASTAMP 3D59FFA2 - ISOC1394.SYS dataStamp是指什么?根据F1B878B8 如何找到 驱动中的源程序位置 |
|
|
沙发#
发布于:2002-08-14 15:46
呵呵,蓝屏了?
Bug Check 0xD1: DRIVER_IRQL_NOT_LESS_OR_EQUAL The DRIVER_IRQL_NOT_LESS_OR_EQUAL bug check has value 0x000000D1. This signifies that the system attempted to access pageable memory at a process IRQL that was too high. Parameters The following parameters are displayed on the blue screen. Parameter Description 1 Memory referenced 2 IRQL at time of reference 3 zero: Read one: Write 4 Address that referenced memory Comments This bug check is usually caused by drivers that have used improper addresses. Resolving the Problem To deal with this bug, use a kernel debugger to get a stack trace. |
|
板凳#
发布于:2002-08-14 15:52
I\'ve been toying with a method to debug BSOD that maybe someone can confirm
(or at least tell me I\'m wrong). I\'ve been using this method and it SEEMS to work but maybe I\'ve been getting lucky. I needed something to track down a bugcheck that only occurred on free builds with no debugger running. I also had the misfortune that no MEMORY.DMP file was generated when the bugcheck happened. You need to generate a MAP (preferably with line information) file for your driver. Then use the first two lines of the BSOD. Looking at the first two lines of the BSOD, if the second line denotes your driver then take the two addresses (from the second line) and subtract them and then add 10000h. The value 10000h is obtained from the \'Preferred load address is\' line of the MAP file. Using the map file for your driver find the first \'Rva+base\' value that is not over the computed value. This will give you the function where the bugcheck occurred. Subtract the \'Rva+base\' value from the computed value and add the result to the \'Address\' column value. This result will give you line number where the bugcheck happened. Go to the line number information for the OBJ file where the bugcheck happened and find the first value that is not over the computed line number value. This should be the line number within the file (and within the function) where the bugcheck happened. For example (the data is fictional): *** STOP 0x0000000A (0x00000000, 0x00000002, 0x00000000, 0xFE302649) IRQL_NOT_LESS_OR_EQUAL*** Address FE302649 has base at FE300000 - MyDrv.sys ********************************************************* Address Publics by Value Rva+Base Lib:Object 0004:00000194 _MyFunction1@4 00012574 f main.obj 0005:00000062 _DriverEntry@8 000126e2 f main.obj : : Line numbers for obj\\i386\\main.obj(D:\\MyDrv\\main.c) segment .text 261 0001:000018f0 263 0001:000018f6 264 0001:000018fd 265 0001:00001904 266 0001:0000190c 268 0001:00001914 270 0001:0000191c 271 0001:00001922 273 0001:0000192d 274 0001:00001933 277 0001:00001935 278 0001:0000193b 279 0001:00001943 281 0001:00001945 282 0001:00001948 The calculation is: FE302649 -FE300000 + 10000 Taken from \'Preferred load address is\' in MAP file ---------------- 12649 - 12574 Taken from \'Rva+base\' column in MAP file ---------------- D5 + 194 Taken from \'Address\' column in MAP file ----------------- 269 The bugcheck occured on line 268 of MAIN.C in function MyFunction1. |
|
地板#
发布于:2002-08-14 15:56
好像不错的样子。
|
|
地下室#
发布于:2002-08-14 16:36
I\'ve been toying with a method to debug BSOD that maybe someone can confirm BSOD是什么呢? |
|
|
5楼#
发布于:2002-08-14 16:39
呵呵,蓝屏了? 是啊,verifer就这么verify啊, 还是不能避免兰啊。怎么PAGE_FAULT_IN_NONPAGED_EREA没了,有出这个 还有你这些英文东西是哪里的啊? |
|
|
6楼#
发布于:2002-08-14 17:12
BSOD就是blue screen of death,死亡蓝屏的意思,通俗的说就是蓝屏
|
|
7楼#
发布于:2002-08-14 17:14
BSOD就是blue screen of death,死亡蓝屏的意思,通俗的说就是蓝屏 不好意思 看的时候 感觉到了! 再问问看 MAP文件怎么生成呢 |
|
|
8楼#
发布于:2002-08-14 17:35
是啊,verifer就这么verify啊, 还是不能避免兰啊。怎么PAGE_FAULT_IN_NONPAGED_EREA没了,有出这个 2K的DDK上面。 |
|