Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why isn't !locks working for me?

I'm using windbg (the latest available from the MSDN download page).

I'm trying to debug a deadlock in my app, and !locks would be very useful. However, it's not working:

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

I don't know why it's upset. I've got symbols properly loaded:

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

And NTSD agrees:

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.

And the stack looks good:

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

Any help is appreciated.

like image 836
i_am_jorf Avatar asked May 20 '10 18:05

i_am_jorf


1 Answers

Useful link.

The correct version that fixes this is 6.12.2.633. It's part of WDK 7.1 in the "debuggers" folder in the root of the DVD (.iso).

Alternatively, grab the WDK 7.1 web installer and install "just" Debugging Tools for Windows (though that seems to involve a hundred odd megabytes of extraneous material that does not correspond with any of the checkboxes in the installer).


dlanod comments:

I also found msdn-archives which lets you download standalone versions of the new release.

And this link does in fact work. (Much better than the WDK installer)

like image 176
deemok Avatar answered Oct 04 '22 19:10

deemok