Почему у меня не работает замки? - PullRequest
9 голосов
/ 20 мая 2010

Я использую windbg (последняя версия доступна на странице загрузки MSDN).

Я пытаюсь отладить тупик в моем приложении, и блокировка! Будет очень полезна. Однако, это не работает:

0:023> !locks NTSDEXTS: Unable to resolve ntdll!RTL_CRITICAL_SECTION_DEBUG type
NTSDEXTS: Please check your symbols

Я не знаю, почему это расстроено. У меня правильно загружены символы:

0:023> .sympath
Symbol search path is: srv*
Expanded Symbol search path is: cache*c:\debuggers\sym;SRV*http://msdl.microsoft.com/download/symbols

И NTSD соглашается:

0:023> lmv m ntdll
start    end        module name
777b0000 77930000   ntdll      (pdb symbols)          c:\debuggers\sym\wntdll.pdb\E9D10FA3EB884A23A5854E04FB7E2F0C2\wntdll.pdb
    Loaded symbol image file: C:\Windows\SysWOW64\ntdll.dll
    Image path: ntdll.dll
    Image name: ntdll.dll
    Timestamp:        Mon Jul 13 18:11:23 2009 (4A5BDB3B)
    CheckSum:         00148A78
    ImageSize:        00180000
    File version:     6.1.7600.16385
    Product version:  6.1.7600.16385
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0409.04b0
    CompanyName:      Microsoft Corporation
    ProductName:      Microsoft® Windows® Operating System
    InternalName:     ntdll.dll
    OriginalFilename: ntdll.dll
    ProductVersion:   6.1.7600.16385
    FileVersion:      6.1.7600.16385 (win7_rtm.090713-1255)
    FileDescription:  NT Layer DLL
    LegalCopyright:   © Microsoft Corporation. All rights reserved.

И стек выглядит хорошо:

0:036> k
ChildEBP RetAddr  
1506fdd8 7784f546 ntdll!DbgBreakPoint
1506fe08 75bf3677 ntdll!DbgUiRemoteBreakin+0x3c
1506fe14 777e9d72 kernel32!BaseThreadInitThunk+0xe
1506fe54 777e9d45 ntdll!__RtlUserThreadStart+0x70
1506fe6c 00000000 ntdll!_RtlUserThreadStart+0x1b

Любая помощь приветствуется.

1 Ответ

7 голосов
/ 20 мая 2010

Полезная ссылка .

Правильная версия, которая исправляет это 6.12.2.633. Это часть WDK 7.1 в папке «отладчики» в корне DVD (.iso).

В качестве альтернативы, воспользуйтесь веб-установщиком WDK 7.1 и установите «просто» средства отладки для Windows (хотя, похоже, для этого требуется сто с лишним мегабайт постороннего материала, который не соответствует ни одному из флажков в установщик).


Комментарии dlanod:

Я также нашел msdn-архивы которая позволяет загружать автономные версии нового выпуска.

И эта ссылка действительно работает. (Намного лучше, чем установщик WDK)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...