에이콘 출판사에서 MDAA Volumes를 번역할 예정으로 보입니다
기대 되는군요 !!
http://www.opentask.com/korean-rights-mdaa-v1-v2
http://www.dumpanalysis.org/blog/index.php/2009/03/29/mdaa-volumes-to-be-translated-in-korean/
- 디버깅의 마술사 !! 제라툴의 블로그
에이콘 출판사에서 MDAA Volumes를 번역할 예정으로 보입니다
기대 되는군요 !!
http://www.opentask.com/korean-rights-mdaa-v1-v2
http://www.dumpanalysis.org/blog/index.php/2009/03/29/mdaa-volumes-to-be-translated-in-korean/
0: kd> !locks
**** DUMP OF ALL RESOURCE OBJECTS ****
KD: Scanning for held locks…………………………………………………………….
Resource @ 0×8409eee0 Shared 1 owning threads
Threads: 843b8643-01<*> *** Actual Thread 843b8640
KD: Scanning for held locks……
Resource @ 0×83fee918 Shared 1 owning threads
Threads: 82a53860-01<*>
KD: Scanning for held locks………
Resource @ 0×842dd9ac Shared 1 owning threads
Contention Count = 46
NumberOfSharedWaiters = 1
NumberOfExclusiveWaiters = 24
Threads: 82a53860-01<*> 84157da8-01
Threads Waiting On Exclusive Access:
83faad80 83f48d38 841ea790 83ff45d8
8402d8e8 82a57da8 8404f2a0 83f045c8
8403a6a0 83facda8 83fd7da8 82a53860
843466b8 84052a68 8389a790 8434e680
84029bf0 82a4e998 840527f0 840b57a0
840102f8 8402ea68 83faa8e0 840ad360
KD: Scanning for held locks……….
Resource @ 0×82ff5040 Shared 1 owning threads
Threads: 843b8023-01<*> *** Actual Thread 843b8020
2955 total locks, 4 locks currently held
Cross Accqure가 없는데도 불고하고 다수의 Thread가 대기 상태인것을 확인 할 수 있습니다. 얼핏보기에는 문제가 없는 것으로 보이지만 자세히 보면 82a53860 Thread가 Shared Acquire와 Exclusive Acquire를 같은 스택상에서 같은 Resource를 호출 한것을 볼 수 있습니다. 그러한 이유에서 절대로 Waiting이 풀릴 수 없는 Thread(82a53860 Thread) 를 다를 Thread들이 기다리고 있게 되는것으로 Dead Lock이 발생하게되죠. 이러한 경우는 보통 Service API Hooking시 다수의 함수에서 같은 Resource를 사용하여 동기화 처리를 할 경우 많이 발생합니다. 물론 그 사이사이에 다른 Filter Driver, Hooking Driver들이 존재 해서 발생하는 경우가 대부분이지만요 .
Cross Acquire가 없는데도 Waiting Thread가 다수 존재할 경우 Double Acquire를 의심해 보시면 도움이 되실 꺼라 생각 됩니다.
최근 답글