-
-
[原创]Windbg跟踪临界区的bug
-
发表于:
2015-10-23 20:56
10723
-
最近跟踪了一个程序的界面卡死问题,用windbg载入dump文件后打印出函数调用堆栈后,一眼可以看出是临界区死锁了。
0:000:x86> kb
ChildEBP RetAddr Args to Child
0032dd0c 779ed993 00000710 00000000 00000000 ntdll_779b0000!NtWaitForSingleObject+0x15
0032dd70 779ed877 00000000 00000000 024023f0 ntdll_779b0000!RtlpWaitOnCriticalSection+0x13e
0032dd98 58a2fac3 02404c50 856fd57e 024023f0 ntdll_779b0000!RtlEnterCriticalSection+0x150
0032dffc 58a0d4d7 856fea8a 00000000 001c41a0 SogouSoftware_589d0000!CDownloadListUI::UpdateDownloadListUI+0x43
0:000:x86> !cs 02404c50
-----------------------------------------
Critical section = 0x0000000002404c50 (+0x2404C50)
DebugInfo = 0x0000000000611e08
LOCKED
LockCount = 0xFFFFFFFF
WaiterWoken = Yes
OwningThread = 0x0000000000000710
RecursionCount = 0x1A38
LockSemaphore = 0x2433B08
SpinCount = 0x0000000000000000
0:000:x86> ~~[710]
^ Illegal thread error in '~~[710]'
[注意]APP应用上架合规检测服务,协助应用顺利上架!