BSOD, глюк или errata?

Тема в разделе "WASM.NT.KERNEL", создана пользователем Medstrax, 6 июн 2010.

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    P4, WinXP SP3 32 bit, ring 3
    mov eax,10FFE
    mov word ptr [eax],0FFFF
    jmp eax
    В рез-те синька. Ситуация весьма похожа на одну из errat.
    Прокомментируйте плиз
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Генерится #UD, ядро возвращает в юзермод #STATUS_ILLEGAL_INSTRUCTION. Ничего не бсодит.
     
  3. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Хм, ясно, значит косяк локальный, будем смотреть.
    ЗЫ.
    В какой из еррат упоминалось про косяк насчет невалидной кjманды+одновременный page walk, типа будет дедлок или типа того. Грешным делом сразу подумалось про это....
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    medstrax1
    Код (Text):
    1. _KiTrap0E       proc
    2.  
    3.         ENTER_TRAP      kite_a, kite_t
    4.  
    5.  
    6. if FAST_BOP
    7.         cmp     dword ptr PCR[PcVdmAlert], 0
    8.         jne     Kt0eVdmAlert
    9. endif
    10.  
    11.         MODIFY_BASE_TRAP_FRAME
    12.  
    13.         mov     edi,cr2
    14. ;
    15. ; Now that everything is in a sane state check for rest of the Pentium
    16. ; Processor bug work around for illegal operands
    17. ;
    18.  
    19.         cmp     _KiI386PentiumLockErrataPresent, 0
    20.         jne     PentiumTest              ; Check for special problems
    21.  
    22. NoPentiumFix:                            ; No.  Skip it
    23.         sti
    24. ...
    25. ; The following code it to fix a bug in the Pentium Processor dealing with
    26. ; Invalid Opcodes.
    27. ;
    28.  
    29.  
    30. PentiumTest:                            ; Is this access to the write protect
    31.                                         ; IDT page?
    32.         test    [ebp]+TsErrCode, 04h    ; Do not allow user mode access to trap 6
    33.         jne     NoPentiumFix            ; vector. Let page fault code deal with it
    34.         mov     eax, PCR[PcIDT]         ; Get address of trap 6 IDT entry
    35.         add     eax, (6 * 8)
    36.         cmp     eax, edi                ; Is that the faulting address?
    37.         jne     NoPentiumFix            ; No.  Back to page fault code
    38.  
    39.                                         ; Yes. We have accessed the write
    40.                                         ; protect page of the IDT
    41.         mov     [ebp]+TsErrCode, 0      ; Overwrite error code
    42. .errnz (EFLAGS_V86_MASK AND 0FF00FFFFh)
    43.         test    byte ptr [ebp]+TsEFlags+2, EFLAGS_V86_MASK/010000h ; Was it a VM?
    44.         jne     Kt06VMpf                ; Yes.  Go to VM part of trap 6
    45.         jmp     Kt06pf                  ; Not from a VM
    Это уже очень давно пофиксили. Более того на старых пнях только было.
    -
    У вас вероятно какаято трабла в софте.