- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在使用 WinDbg 分析转储。
我运行了以下命令(遵循 Tess' incredible walkthrough ):
~* e !clrstack
OS Thread Id: 0x107c (166)
Child SP IP Call Site
2bc1e654 77c1015d [HelperMethodFrame_1OBJ: 2bc1e654] System.Threading.WaitHandle.WaitOneNative(System.Runtime.InteropServices.SafeHandle, UInt32, Boolean, Boolean)
2bc1e720 6b2e6dd2 System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)
2bc1e73c 6b2e6d9c System.Threading.WaitHandle.WaitOne(Int32, Boolean)
2bc1e750 727f4baa System.Threading.ReaderWriterLockSlim.WaitOnEvent(System.Threading.EventWaitHandle, UInt32 ByRef, TimeoutTracker)
2bc1e78c 729bc154 System.Threading.ReaderWriterLockSlim.TryEnterUpgradeableReadLockCore(TimeoutTracker)
2bc1e7b8 725d250c System.Threading.ReaderWriterLockSlim.TryEnterUpgradeableReadLock(TimeoutTracker)
** MORE LINES **
> ~166s
eax=00000000 ebx=2bc1e444 ecx=00000000 edx=00000000 esi=00000001 edi=00000000
eip=77c1015d esp=2bc1e3f4 ebp=2bc1e490 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!NtWaitForMultipleObjects+0x15:
77c1015d 83c404 add esp,4
> !dso
OS Thread Id: 0x107c (166)
ESP/REG Object Name
** MORE LINES **
2BC1E7D0 039ec48c System.Threading.ReaderWriterLockSlim
** MORE LINES **
ReaderWriterLockSlim
的信息。 -实例:
> !do 039ec48c
Name: System.Threading.ReaderWriterLockSlim
MethodTable: 725ebda4
EEClass: 724543bc
Size: 68(0x44) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
Fields:
MT Field Offset Type VT Attr Value Name
6b3b8138 4000755 3c System.Boolean 1 instance 0 fIsReentrant
6b3c3aa4 4000756 1c System.Int32 1 instance 0 myLock
6b3c7ae4 4000757 20 System.UInt32 1 instance 0 numWriteWaiters
6b3c7ae4 4000758 24 System.UInt32 1 instance 0 numReadWaiters
6b3c7ae4 4000759 28 System.UInt32 1 instance 0 numWriteUpgradeWaiters
6b3c7ae4 400075a 2c System.UInt32 1 instance 348 numUpgradeWaiters
6b3b8138 400075b 3d System.Boolean 1 instance 0 fNoWaiters
6b3c3aa4 400075c 30 System.Int32 1 instance 366 upgradeLockOwnerId
6b3c3aa4 400075d 34 System.Int32 1 instance 366 writeLockOwnerId
6b3c0ac0 400075e c ...g.EventWaitHandle 0 instance 00000000 writeEvent
6b3c0ac0 400075f 10 ...g.EventWaitHandle 0 instance 00000000 readEvent
6b3c0ac0 4000760 14 ...g.EventWaitHandle 0 instance 08188858 upgradeEvent
6b3c0ac0 4000761 18 ...g.EventWaitHandle 0 instance 00000000 waitUpgradeEvent
6b3b821c 4000763 4 System.Int64 1 instance 231 lockID
6b3b8138 4000765 3e System.Boolean 1 instance 0 fUpgradeThreadHoldingRead
6b3c7ae4 4000766 38 System.UInt32 1 instance 2147483649 owners
6b3b8138 4000767 3f System.Boolean 1 instance 0 fDisposed
6b3b821c 4000762 3e0 System.Int64 1 shared static s_nextLockID
>> Domain:Value 01742528:NotInit 01783fb8:NotInit 1268c9d8:NotInit <<
725fd46c 4000764 4 ...ReaderWriterCount 0 shared TLstatic t_rwc
>> Thread:Value <<
owners
的值(2147483649) 对抗
the information on this page =
0x80000001
private const uint WRITER_HELD = 0x80000000;
private const uint WAITING_WRITERS = 0x40000000;
private const uint WAITING_UPGRADER = 0x20000000;
最佳答案
如果遇到死锁,可以使用 SOSEx的 !dlk
命令为您完成所有工作。
*DEADLOCK DETECTED*
CLR thread 0x4 holds the Writer lock on ReaderWriterLockSlim 02712580
...and is waiting for a Reader lock on ReaderWriterLockSlim 0271253c
CLR thread 0x3 holds the Writer lock on ReaderWriterLockSlim 0271253c
...and is waiting for a Reader lock on ReaderWriterLockSlim 02712580
CLR Thread 0x4 is waiting at System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)(+0x1f IL,+0x22 Native)
CLR Thread 0x3 is waiting at System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)(+0x1f IL,+0x22 Native)
!mlocks
.输出看起来像这样,因此您可以获得所有不同的线程号和锁的类型。
0:012> !mlocks
Examining SyncBlocks...
Scanning for ReaderWriterLock instances...
Scanning for holders of ReaderWriterLock locks...
Scanning for ReaderWriterLockSlim instances...
Scanning for holders of ReaderWriterLockSlim locks...
Examining CriticalSections...
ClrThread DbgThread OsThread LockType Lock LockLevel
----------------------------------------------------------------------
0x1 0 0x1460 thinlock 02718bcc (recursion:0)
0x5 6 0x1e80 RWLock 027125f0 Writer
0x8 9 0x22ac CritSect 027124c0
0x9 10 0x27b8 SyncBlock 0045f4e8
0xa 11 0x33f8 SyncBlock 0045f4b4
0x7 8 0x388c CritSect 027124a0
0x4 5 0x3d20 RWLockSlim 02712580 Writer
0x3 4 0x3e44 RWLockSlim 0271253c Writer
0x6 7 0x4704 RWLock 027125c4 Writer
!rwlock <lock>
如果你不喜欢 DML。
关于debugging - 确定哪个方法持有 ReaderWriterLockSlim WriteLock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037581/
Debug.Assert/Debug.Fail 是否自动条件编译#if "DEBUG"?或者它是否更像是没有附加调试器(即使在发行版中)它什么也做不了?如果是这样,将它们留在您的代码中是否会对性能产生
我有一个应用程序,我配置了多个路由,一切正常,直到我配置的最新路由不起作用(显示错误的屏幕)。 我的问题是如何进行调试?没有打印错误日志,我无法找到如何获取有关正在发生的事情的更多日志。我也不知道从哪
我正在 Intellij 中调试代码。我使用 maven 来构建项目,并且在本地 .m2 存储库中有该项目的各种版本。当我开始调试时,Intellij 继续从项目的前一个快照中选择旧版本的代码。如何让
我喜欢在业余时间进行一些 TiVo 黑客事件 - TiVo 使用 Linux 变体和 TCL 。我想在我的 Windows 笔记本电脑上编写 TCL 脚本,测试它们,然后将它们通过 FTP 传输到我的
我有 ASM 代码,它使用循环语法打印 abc 。这是我的代码 ;abc.com .model small .code org 100h start: mov ah, 02h mov
我在 Debugging .net 2.0 Applications 中看到了以下代码 [Conditional("DEBUG")] void AssertTableExists() { #i
在大型项目中哪个更好用,为什么: #if DEBUG public void SetPrivateValue(int value) { ... } #endif 或 [System.D
我似乎无法让调试器运行。调试运行图标变灰,菜单选项丢失。 这只是main的情况,我可以很好地调试单元测试。 类似的问题提到了项目结构,但我看不出有什么不对: $GOPATH/src/foo.bar.c
只是想知道我的浏览器一直询问我是否想在每次点击浏览器链接刷新时停止调试非常烦人,因为这会减慢开发时间。 有没有其他人遇到过这个? 干杯 最佳答案 更新的答案,现在找到根本原因 经过两年看到这个错误时断
我正在尝试包含调试/发布相关编译器标志,例如: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST") set
当我尝试使用 debug.phonegap.com 调试我的phonegap 应用程序时遇到问题。 我把这个视频放在 HTML 文档的头部 在启动应用程序之前,我从 build.phonegap.
GDB 7.0以后,支持反向调试。 生成核心转储时,我可以使用反向调试命令吗? 我怎样才能做到这一点? 最佳答案 你不能。核心文件是某个时间点程序状态的快照。要在该状态下向后移动,您需要程序状态的较早
首先:如果之前有人问过这个问题,我很抱歉。我是一个熟练的谷歌用户,但这确实让我难住了,我找不到任何东西。 我目前正在编写一个小型库,我想对其进行调试。我还希望能够完全关闭调试,并且编译后的代码不应包含
我想在 tomcat 中将级别日志记录设置为 DEBUG,但在控制台中仍然只有 INFO 和 WARN 输出。谁能告诉我哪里出了问题? 我的 C:\tomcat\logging.properties:
我已经开始像这样使用定义类了: internal sealed class Defines { /// /// This constant is set to true iff th
在使用编译器指令时,我不清楚以下两个代码片段中哪一个是正确/首选的,以及为什么。似乎我见过的大多数开发人员和开源项目都使用第一种,但我也看到第二种也经常使用。 #ifdef DEBUG [self d
我遇到错误,无法完成构建。我搜索了 Stackoverflow 和 Github。我已经尝试了很多方法,但我无法修复。请帮忙。 (1) 在 [src/nullnull/debug, src/debug
我刚刚意识到,使用 TFS 部署时,DEBUG 处理器指令仍然有效,有没有办法更改 TFS/Azure 网站或构建定义中的设置,而不是在本地解决方案配置? 我仍然希望本地解决方案保持调试状态,只有部署
我有一段代码在 VS2008,C++ 中以 Debug模式运行。 问题是,当我逐行调试代码时,在代码的一个非常奇怪的地方,它崩溃并说: debug assertion faild. Expressio
我有一个简单的 Xamarin.Forms 项目,我在 Visual Studio 中运行,使用 iphone 模拟器。我在 App.cs 中有以下代码: protected override voi
我是一名优秀的程序员,十分优秀!