debugging - 为什么 !locks 对我不起作用?

标签 debugging windbg locks

我正在使用 Windbg(MSDN 下载页面提供的最新版本)。

我正在尝试调试应用程序中的死锁,并且 !locks 会非常有用。但是,它不起作用:

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

感谢任何帮助。

最佳答案

Useful link .

修复此问题的正确版本是 6.12.2.633。它是 WDK 7.1 的一部分DVD 根目录中的“debuggers”文件夹 (.iso)。

或者,获取 WDK 7.1 web installer并安装“仅”Windows 调试工具(尽管这似乎涉及一百多兆字节的无关 Material ,与安装程序中的任何复选框都不对应)。

<小时/>

dlanod 评论:

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

这个链接确实有效。 (比WDK安装程序好得多)

关于debugging - 为什么 !locks 对我不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2876506/

相关文章:

image - 在Matlab中使用ind2sub后出现莫名其妙的结果

c# - 如何获取有关事件的调试信息

exception-handling - 在不中断的情况下显示有关第一次机会异常的详细信息

java - 同步方法是否会阻止对象字段被更新?

asp.net - 什么可能导致 ASP.NET 在调试中跳过行?

debugging - GDB:如何打印当前行或查找当前行号?

c# - mdbg 是否支持条件断点?

c++ - WinDbg 可以告诉我什么是 Visual Studio 不能的?

java - java中静态变量的类级锁

java - 了解 jpa 锁与事务隔离级别