<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Crash Dump Analysis Patterns (Part 9a)</title>
	<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/</link>
	<description>Structural and Behavioral Patterns for Software Diagnostics, Forensics and Prognostics</description>
	<pubDate>Thu, 07 May 2026 07:25:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741686</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Wed, 30 Sep 2015 16:29:25 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741686</guid>
		<description>Often, we can preliminary suppose a critical section deadlock if all locked critical section owner threads are waiting for critical sections (as seen from !cs -l -o -s WinDbg command output and corresponding stack traces, k or !thread).</description>
		<content:encoded><![CDATA[<p>Often, we can preliminary suppose a critical section deadlock if all locked critical section owner threads are waiting for critical sections (as seen from !cs -l -o -s WinDbg command output and corresponding stack traces, k or !thread).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741654</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Sun, 05 Oct 2014 15:49:02 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741654</guid>
		<description>&lt;p align="left"&gt;&lt;code&gt;0:000:x86&gt; ~*kv

&lt;p align="left"&gt;.  0  Id: 2e24.35f8 Suspend: 0 Teb: 7efdb000 Unfrozen
ChildEBP RetAddr  Args to Child              
0015cedc 77748e44 000004b8 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0x15 (FPO: [3,0,0])
0015cf40 77748d28 00000000 00000000 000035f8 ntdll_77710000!RtlpWaitOnCriticalSection+0x13e (FPO: [Non-Fpo])
0015cf68 558f829b 00e531d8 d3c25775 058f0a0c ntdll_77710000!RtlEnterCriticalSection+0x150 (FPO: [Non-Fpo])
WARNING: Stack unwind information not available. Following frames may be wrong.
0015d4a4 558f9e66 d3c256e1 000000df 00000000 libdjvulibre!DJVU::DjVuDocument::process_threqs+0x6b
0015d530 558cdea5 0015d57c 000000df 00000001 libdjvulibre!DJVU::DjVuDocument::get_thumbnail+0x8c6
0015d594 0103d8d1 00c6a1e0 000000df 00000000 libdjvulibre!ddjvu_thumbnail_status+0x115
0015d604 55107cd9 00c3c5a8 00000000 00000006 djview+0x4d8d1
0015d658 53f3fc29 00000000 00c3c5a8 00b8ed18 QtCore4!QMetaCallEvent::placeMetaCall+0x19
0015d8a0 550f948d 00c3c5a8 00eeb598 d3c25ad6 QtGui4!QApplicationPrivate::notify_helper+0xb9
0015d8e0 550fb07f 00b8e640 00eeb598 d3c25b12 QtCore4!QCoreApplication::notifyInternal+0x8d
0015d924 5511e835 00000000 00000000 00b8e640 QtCore4!QCoreApplicationPrivate::sendPostedEvents+0x1cf
00000000 00000000 00000000 00000000 00000000 QtCore4!QEventDispatcherWin32::event+0x555

&lt;p align="left"&gt;   1  Id: 2e24.1390 Suspend: 0 Teb: 7efd8000 Unfrozen
ChildEBP RetAddr  Args to Child              
0296f884 7344a41c 00000001 0296f8e4 00000001 ntdll_77710000!NtWaitForMultipleObjects+0x15 (FPO: [5,0,0])
0296f92c 7702338a 00000000 0296f978 77749f72 winmm!timeThread+0x3c (FPO: [Non-Fpo])
0296f938 77749f72 00000000 55277637 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
0296f978 77749f45 7344a3e0 00000000 00000000 ntdll_77710000!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
0296f990 00000000 7344a3e0 00000000 00000000 ntdll_77710000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])

&lt;p align="left"&gt;   2  Id: 2e24.37a0 Suspend: 0 Teb: 7efd5000 Unfrozen
ChildEBP RetAddr  Args to Child              
02c3facc 77762f91 00000003 005fb610 00000001 ntdll_77710000!NtWaitForMultipleObjects+0x15 (FPO: [5,0,0])
02c3fc60 7702338a 00000000 02c3fcac 77749f72 ntdll_77710000!TppWaiterpThread+0x33d (FPO: [Non-Fpo])
02c3fc6c 77749f72 005fb5e0 557273e3 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
02c3fcac 77749f45 77762e65 005fb5e0 00000000 ntdll_77710000!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
02c3fcc4 00000000 77762e65 005fb5e0 00000000 ntdll_77710000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])

&lt;p align="left"&gt;   3  Id: 2e24.2150 Suspend: 0 Teb: 7ef4a000 Unfrozen
ChildEBP RetAddr  Args to Child              
0300f940 77763392 0000039c 0300f9f4 54b175ef ntdll_77710000!NtWaitForWorkViaWorkerFactory+0x12 (FPO: [2,0,0])
0300faa0 7702338a 005fa788 0300faec 77749f72 ntdll_77710000!TppWorkerThread+0x216 (FPO: [Non-Fpo])
0300faac 77749f72 005fa788 54b175a3 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
0300faec 77749f45 77763e85 005fa788 00000000 ntdll_77710000!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
0300fb04 00000000 77763e85 005fa788 00000000 ntdll_77710000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])

&lt;p align="left"&gt;   4  Id: 2e24.3478 Suspend: 0 Teb: 7ef4d000 Unfrozen
ChildEBP RetAddr  Args to Child              
0320f3bc 77748e44 000004c4 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0x15 (FPO: [3,0,0])
0320f420 77748d28 00000000 00000000 058f0a18 ntdll_77710000!RtlpWaitOnCriticalSection+0x13e (FPO: [Non-Fpo])
0320f448 558f8750 04f3538c d0f77a55 058dbb18 ntdll_77710000!RtlEnterCriticalSection+0x150 (FPO: [Non-Fpo])
WARNING: Stack unwind information not available. Following frames may be wrong.
0320f984 558fa26c d0f77a41 058dbb18 04ffb618 libdjvulibre!DJVU::DjVuDocument::process_threqs+0x520
0320f9b0 5591ec70 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuDocument::notify_file_flags_changed+0xdc
0320fa00 55900ac1 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuPortcaster::notify_file_flags_changed+0x80
0320faf4 559005a7 d0f778f1 00000000 00000000 libdjvulibre!DJVU::DjVuFile::decode_func+0x4c1
0320fb20 55945bf2 058dbb18 d0f778b1 00000000 libdjvulibre!DJVU::DjVuFile::static_decode_func+0x87
0320fb60 55b4c556 04d95f90 d0f779b8 00000000 libdjvulibre!DJVU::GNativeString::setat+0x282
0320fb98 55b4c600 00000000 0320fbb0 7702338a msvcr100!_endthreadex+0x3f (FPO: [Non-Fpo])
0320fba4 7702338a 04ad13d8 0320fbf0 77749f72 msvcr100!_endthreadex+0xce (FPO: [Non-Fpo])
0320fbb0 77749f72 04ad13d8 549174bf 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
0320fbf0 77749f45 55b4c59c 04ad13d8 00000000 ntdll_77710000!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
0320fc08 00000000 55b4c59c 04ad13d8 00000000 ntdll_77710000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])

&lt;p align="left"&gt;0:000:x86&gt; !cs -l -o -s
-----------------------------------------
DebugInfo          = 0x00000000005f05c0
Critical section   = 0x0000000000e531d8 (+0xE531D8)
LOCKED
LockCount          = 0x1
WaiterWoken        = No
OwningThread       = 0x0000000000003478
RecursionCount     = 0x1
LockSemaphore      = 0x4B8
SpinCount          = 0x0000000000000000
OwningThread DbgId = ~4s
OwningThread Stack =
	ChildEBP RetAddr  Args to Child              
	0320f3bc 77748e44 000004c4 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0x15 (FPO: [3,0,0])
	0320f420 77748d28 00000000 00000000 058f0a18 ntdll_77710000!RtlpWaitOnCriticalSection+0x13e (FPO: [Non-Fpo])
	0320f448 558f8750 04f3538c d0f77a55 058dbb18 ntdll_77710000!RtlEnterCriticalSection+0x150 (FPO: [Non-Fpo])
	0320f984 558fa26c d0f77a41 058dbb18 04ffb618 libdjvulibre!DJVU::DjVuDocument::process_threqs+0x520
	0320f9b0 5591ec70 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuDocument::notify_file_flags_changed+0xdc
	0320fa00 55900ac1 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuPortcaster::notify_file_flags_changed+0x80
	0320faf4 559005a7 d0f778f1 00000000 00000000 libdjvulibre!DJVU::DjVuFile::decode_func+0x4c1
	0320fb20 55945bf2 058dbb18 d0f778b1 00000000 libdjvulibre!DJVU::DjVuFile::static_decode_func+0x87
	0320fb60 55b4c556 04d95f90 d0f779b8 00000000 libdjvulibre!DJVU::GNativeString::setat+0x282
	0320fb98 55b4c600 00000000 0320fbb0 7702338a msvcr100!_endthreadex+0x3f (FPO: [Non-Fpo])
	0320fba4 7702338a 04ad13d8 0320fbf0 77749f72 msvcr100!_endthreadex+0xce (FPO: [Non-Fpo])
	0320fbb0 77749f72 04ad13d8 549174bf 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
	0320fbf0 77749f45 55b4c59c 04ad13d8 00000000 ntdll_77710000!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
	0320fc08 00000000 55b4c59c 04ad13d8 00000000 ntdll_77710000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])
${$ntdllwsym}!RtlpStackTraceDataBase is NULL. Probably the stack traces are not enabled.
-----------------------------------------
DebugInfo          = 0x0000000000625d80
Critical section   = 0x0000000004f3538c (+0x4F3538C)
LOCKED
LockCount          = 0x1
WaiterWoken        = No
OwningThread       = 0x00000000000035f8
RecursionCount     = 0x1
LockSemaphore      = 0x4C4
SpinCount          = 0x0000000000000000
OwningThread DbgId = ~0s
OwningThread Stack =
	ChildEBP RetAddr  Args to Child              
	0015cedc 77748e44 000004b8 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0x15 (FPO: [3,0,0])
	0015cf40 77748d28 00000000 00000000 000035f8 ntdll_77710000!RtlpWaitOnCriticalSection+0x13e (FPO: [Non-Fpo])
	0015cf68 558f829b 00e531d8 d3c25775 058f0a0c ntdll_77710000!RtlEnterCriticalSection+0x150 (FPO: [Non-Fpo])
	0015d4a4 558f9e66 d3c256e1 000000df 00000000 libdjvulibre!DJVU::DjVuDocument::process_threqs+0x6b
	0015d530 558cdea5 0015d57c 000000df 00000001 libdjvulibre!DJVU::DjVuDocument::get_thumbnail+0x8c6
	0015d594 0103d8d1 00c6a1e0 000000df 00000000 libdjvulibre!ddjvu_thumbnail_status+0x115
	0015d604 55107cd9 00c3c5a8 00000000 00000006 djview+0x4d8d1
	0015d658 53f3fc29 00000000 00c3c5a8 00b8ed18 QtCore4!QMetaCallEvent::placeMetaCall+0x19
	0015d8a0 550f948d 00c3c5a8 00eeb598 d3c25ad6 QtGui4!QApplicationPrivate::notify_helper+0xb9
	0015d8e0 550fb07f 00b8e640 00eeb598 d3c25b12 QtCore4!QCoreApplication::notifyInternal+0x8d
	0015d924 5511e835 00000000 00000000 00b8e640 QtCore4!QCoreApplicationPrivate::sendPostedEvents+0x1cf
	00000000 00000000 00000000 00000000 00000000 QtCore4!QEventDispatcherWin32::event+0x555
${$ntdllwsym}!RtlpStackTraceDataBase is NULL. Probably the stack traces are not enabled.&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p align="left"><code>0:000:x86> ~*kv</p>
<p align="left">.  0  Id: 2e24.35f8 Suspend: 0 Teb: 7efdb000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
0015cedc 77748e44 000004b8 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0&#215;15 (FPO: [3,0,0])<br />
0015cf40 77748d28 00000000 00000000 000035f8 ntdll_77710000!RtlpWaitOnCriticalSection+0&#215;13e (FPO: [Non-Fpo])<br />
0015cf68 558f829b 00e531d8 d3c25775 058f0a0c ntdll_77710000!RtlEnterCriticalSection+0&#215;150 (FPO: [Non-Fpo])<br />
WARNING: Stack unwind information not available. Following frames may be wrong.<br />
0015d4a4 558f9e66 d3c256e1 000000df 00000000 libdjvulibre!DJVU::DjVuDocument::process_threqs+0&#215;6b<br />
0015d530 558cdea5 0015d57c 000000df 00000001 libdjvulibre!DJVU::DjVuDocument::get_thumbnail+0&#215;8c6<br />
0015d594 0103d8d1 00c6a1e0 000000df 00000000 libdjvulibre!ddjvu_thumbnail_status+0&#215;115<br />
0015d604 55107cd9 00c3c5a8 00000000 00000006 djview+0&#215;4d8d1<br />
0015d658 53f3fc29 00000000 00c3c5a8 00b8ed18 QtCore4!QMetaCallEvent::placeMetaCall+0&#215;19<br />
0015d8a0 550f948d 00c3c5a8 00eeb598 d3c25ad6 QtGui4!QApplicationPrivate::notify_helper+0xb9<br />
0015d8e0 550fb07f 00b8e640 00eeb598 d3c25b12 QtCore4!QCoreApplication::notifyInternal+0&#215;8d<br />
0015d924 5511e835 00000000 00000000 00b8e640 QtCore4!QCoreApplicationPrivate::sendPostedEvents+0&#215;1cf<br />
00000000 00000000 00000000 00000000 00000000 QtCore4!QEventDispatcherWin32::event+0&#215;555</p>
<p align="left">   1  Id: 2e24.1390 Suspend: 0 Teb: 7efd8000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
0296f884 7344a41c 00000001 0296f8e4 00000001 ntdll_77710000!NtWaitForMultipleObjects+0&#215;15 (FPO: [5,0,0])<br />
0296f92c 7702338a 00000000 0296f978 77749f72 winmm!timeThread+0&#215;3c (FPO: [Non-Fpo])<br />
0296f938 77749f72 00000000 55277637 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])<br />
0296f978 77749f45 7344a3e0 00000000 00000000 ntdll_77710000!__RtlUserThreadStart+0&#215;70 (FPO: [Non-Fpo])<br />
0296f990 00000000 7344a3e0 00000000 00000000 ntdll_77710000!_RtlUserThreadStart+0&#215;1b (FPO: [Non-Fpo])</p>
<p align="left">   2  Id: 2e24.37a0 Suspend: 0 Teb: 7efd5000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
02c3facc 77762f91 00000003 005fb610 00000001 ntdll_77710000!NtWaitForMultipleObjects+0&#215;15 (FPO: [5,0,0])<br />
02c3fc60 7702338a 00000000 02c3fcac 77749f72 ntdll_77710000!TppWaiterpThread+0&#215;33d (FPO: [Non-Fpo])<br />
02c3fc6c 77749f72 005fb5e0 557273e3 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])<br />
02c3fcac 77749f45 77762e65 005fb5e0 00000000 ntdll_77710000!__RtlUserThreadStart+0&#215;70 (FPO: [Non-Fpo])<br />
02c3fcc4 00000000 77762e65 005fb5e0 00000000 ntdll_77710000!_RtlUserThreadStart+0&#215;1b (FPO: [Non-Fpo])</p>
<p align="left">   3  Id: 2e24.2150 Suspend: 0 Teb: 7ef4a000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
0300f940 77763392 0000039c 0300f9f4 54b175ef ntdll_77710000!NtWaitForWorkViaWorkerFactory+0&#215;12 (FPO: [2,0,0])<br />
0300faa0 7702338a 005fa788 0300faec 77749f72 ntdll_77710000!TppWorkerThread+0&#215;216 (FPO: [Non-Fpo])<br />
0300faac 77749f72 005fa788 54b175a3 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])<br />
0300faec 77749f45 77763e85 005fa788 00000000 ntdll_77710000!__RtlUserThreadStart+0&#215;70 (FPO: [Non-Fpo])<br />
0300fb04 00000000 77763e85 005fa788 00000000 ntdll_77710000!_RtlUserThreadStart+0&#215;1b (FPO: [Non-Fpo])</p>
<p align="left">   4  Id: 2e24.3478 Suspend: 0 Teb: 7ef4d000 Unfrozen<br />
ChildEBP RetAddr  Args to Child<br />
0320f3bc 77748e44 000004c4 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0&#215;15 (FPO: [3,0,0])<br />
0320f420 77748d28 00000000 00000000 058f0a18 ntdll_77710000!RtlpWaitOnCriticalSection+0&#215;13e (FPO: [Non-Fpo])<br />
0320f448 558f8750 04f3538c d0f77a55 058dbb18 ntdll_77710000!RtlEnterCriticalSection+0&#215;150 (FPO: [Non-Fpo])<br />
WARNING: Stack unwind information not available. Following frames may be wrong.<br />
0320f984 558fa26c d0f77a41 058dbb18 04ffb618 libdjvulibre!DJVU::DjVuDocument::process_threqs+0&#215;520<br />
0320f9b0 5591ec70 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuDocument::notify_file_flags_changed+0xdc<br />
0320fa00 55900ac1 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuPortcaster::notify_file_flags_changed+0&#215;80<br />
0320faf4 559005a7 d0f778f1 00000000 00000000 libdjvulibre!DJVU::DjVuFile::decode_func+0&#215;4c1<br />
0320fb20 55945bf2 058dbb18 d0f778b1 00000000 libdjvulibre!DJVU::DjVuFile::static_decode_func+0&#215;87<br />
0320fb60 55b4c556 04d95f90 d0f779b8 00000000 libdjvulibre!DJVU::GNativeString::setat+0&#215;282<br />
0320fb98 55b4c600 00000000 0320fbb0 7702338a msvcr100!_endthreadex+0&#215;3f (FPO: [Non-Fpo])<br />
0320fba4 7702338a 04ad13d8 0320fbf0 77749f72 msvcr100!_endthreadex+0xce (FPO: [Non-Fpo])<br />
0320fbb0 77749f72 04ad13d8 549174bf 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])<br />
0320fbf0 77749f45 55b4c59c 04ad13d8 00000000 ntdll_77710000!__RtlUserThreadStart+0&#215;70 (FPO: [Non-Fpo])<br />
0320fc08 00000000 55b4c59c 04ad13d8 00000000 ntdll_77710000!_RtlUserThreadStart+0&#215;1b (FPO: [Non-Fpo])</p>
<p align="left">0:000:x86> !cs -l -o -s<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
DebugInfo          = 0&#215;00000000005f05c0<br />
Critical section   = 0&#215;0000000000e531d8 (+0xE531D8)<br />
LOCKED<br />
LockCount          = 0&#215;1<br />
WaiterWoken        = No<br />
OwningThread       = 0&#215;0000000000003478<br />
RecursionCount     = 0&#215;1<br />
LockSemaphore      = 0&#215;4B8<br />
SpinCount          = 0&#215;0000000000000000<br />
OwningThread DbgId = ~4s<br />
OwningThread Stack =<br />
	ChildEBP RetAddr  Args to Child<br />
	0320f3bc 77748e44 000004c4 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0&#215;15 (FPO: [3,0,0])<br />
	0320f420 77748d28 00000000 00000000 058f0a18 ntdll_77710000!RtlpWaitOnCriticalSection+0&#215;13e (FPO: [Non-Fpo])<br />
	0320f448 558f8750 04f3538c d0f77a55 058dbb18 ntdll_77710000!RtlEnterCriticalSection+0&#215;150 (FPO: [Non-Fpo])<br />
	0320f984 558fa26c d0f77a41 058dbb18 04ffb618 libdjvulibre!DJVU::DjVuDocument::process_threqs+0&#215;520<br />
	0320f9b0 5591ec70 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuDocument::notify_file_flags_changed+0xdc<br />
	0320fa00 55900ac1 058dbb18 00000042 00000001 libdjvulibre!DJVU::DjVuPortcaster::notify_file_flags_changed+0&#215;80<br />
	0320faf4 559005a7 d0f778f1 00000000 00000000 libdjvulibre!DJVU::DjVuFile::decode_func+0&#215;4c1<br />
	0320fb20 55945bf2 058dbb18 d0f778b1 00000000 libdjvulibre!DJVU::DjVuFile::static_decode_func+0&#215;87<br />
	0320fb60 55b4c556 04d95f90 d0f779b8 00000000 libdjvulibre!DJVU::GNativeString::setat+0&#215;282<br />
	0320fb98 55b4c600 00000000 0320fbb0 7702338a msvcr100!_endthreadex+0&#215;3f (FPO: [Non-Fpo])<br />
	0320fba4 7702338a 04ad13d8 0320fbf0 77749f72 msvcr100!_endthreadex+0xce (FPO: [Non-Fpo])<br />
	0320fbb0 77749f72 04ad13d8 549174bf 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])<br />
	0320fbf0 77749f45 55b4c59c 04ad13d8 00000000 ntdll_77710000!__RtlUserThreadStart+0&#215;70 (FPO: [Non-Fpo])<br />
	0320fc08 00000000 55b4c59c 04ad13d8 00000000 ntdll_77710000!_RtlUserThreadStart+0&#215;1b (FPO: [Non-Fpo])<br />
${$ntdllwsym}!RtlpStackTraceDataBase is NULL. Probably the stack traces are not enabled.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
DebugInfo          = 0&#215;0000000000625d80<br />
Critical section   = 0&#215;0000000004f3538c (+0&#215;4F3538C)<br />
LOCKED<br />
LockCount          = 0&#215;1<br />
WaiterWoken        = No<br />
OwningThread       = 0&#215;00000000000035f8<br />
RecursionCount     = 0&#215;1<br />
LockSemaphore      = 0&#215;4C4<br />
SpinCount          = 0&#215;0000000000000000<br />
OwningThread DbgId = ~0s<br />
OwningThread Stack =<br />
	ChildEBP RetAddr  Args to Child<br />
	0015cedc 77748e44 000004b8 00000000 00000000 ntdll_77710000!ZwWaitForSingleObject+0&#215;15 (FPO: [3,0,0])<br />
	0015cf40 77748d28 00000000 00000000 000035f8 ntdll_77710000!RtlpWaitOnCriticalSection+0&#215;13e (FPO: [Non-Fpo])<br />
	0015cf68 558f829b 00e531d8 d3c25775 058f0a0c ntdll_77710000!RtlEnterCriticalSection+0&#215;150 (FPO: [Non-Fpo])<br />
	0015d4a4 558f9e66 d3c256e1 000000df 00000000 libdjvulibre!DJVU::DjVuDocument::process_threqs+0&#215;6b<br />
	0015d530 558cdea5 0015d57c 000000df 00000001 libdjvulibre!DJVU::DjVuDocument::get_thumbnail+0&#215;8c6<br />
	0015d594 0103d8d1 00c6a1e0 000000df 00000000 libdjvulibre!ddjvu_thumbnail_status+0&#215;115<br />
	0015d604 55107cd9 00c3c5a8 00000000 00000006 djview+0&#215;4d8d1<br />
	0015d658 53f3fc29 00000000 00c3c5a8 00b8ed18 QtCore4!QMetaCallEvent::placeMetaCall+0&#215;19<br />
	0015d8a0 550f948d 00c3c5a8 00eeb598 d3c25ad6 QtGui4!QApplicationPrivate::notify_helper+0xb9<br />
	0015d8e0 550fb07f 00b8e640 00eeb598 d3c25b12 QtCore4!QCoreApplication::notifyInternal+0&#215;8d<br />
	0015d924 5511e835 00000000 00000000 00b8e640 QtCore4!QCoreApplicationPrivate::sendPostedEvents+0&#215;1cf<br />
	00000000 00000000 00000000 00000000 00000000 QtCore4!QEventDispatcherWin32::event+0&#215;555<br />
${$ntdllwsym}!RtlpStackTraceDataBase is NULL. Probably the stack traces are not enabled.</p>
<p></code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dmitry Vostokov</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741602</link>
		<dc:creator>Dmitry Vostokov</dc:creator>
		<pubDate>Thu, 25 Apr 2013 19:01:48 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741602</guid>
		<description>You might have corrupt critical section list. 

http://www.dumpanalysis.org/blog/index.php/2008/07/11/crash-dump-analysis-patterns-part-71/

Try also !cs -l -o -s command. Sometimes if you dump all sections you can see where corruption starts like !locks -v or !cs</description>
		<content:encoded><![CDATA[<p>You might have corrupt critical section list. </p>
<p><a href="http://www.dumpanalysis.org/blog/index.php/2008/07/11/crash-dump-analysis-patterns-part-71/" rel="nofollow">http://www.dumpanalysis.org/blog/index.php/2008/07/11/crash-dump-analysis-patterns-part-71/</a></p>
<p>Try also !cs -l -o -s command. Sometimes if you dump all sections you can see where corruption starts like !locks -v or !cs</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Philippe.Souveton</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741601</link>
		<dc:creator>Philippe.Souveton</dc:creator>
		<pubDate>Wed, 24 Apr 2013 15:42:44 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-741601</guid>
		<description>Hi Dmitry, 

I'm facing a problem with hang threads. when I executed the command !locks I got this: 

0:000&#62; !locks

CritSec +83eb6d10 at 83eb6d10
WaiterWoken        No
LockCount          -452697857
RecursionCount     36294152
OwningThread       a
EntryCount         1379620
ContentionCount    1379620
*** Locked

CritSec +840d6d10 at 840d6d10
WaiterWoken        Yes
LockCount          -60090439
RecursionCount     1093776890
OwningThread       ffffffffadcb569d
EntryCount         0
ContentionCount    0
*** Locked

CritSec +840d6d10 at 840d6d10
WaiterWoken        Yes
LockCount          -60090439
RecursionCount     1093776890
OwningThread       ffffffffadcb569d
EntryCount         0
ContentionCount    0
*** Locked

CritSec +86156d10 at 86156d10
WaiterWoken        Yes
LockCount          -278997059
RecursionCount     1224415142
OwningThread       ffffffff9e8e4272
EntryCount         0
ContentionCount    0
*** Locked

CritSec +83c96d10 at 83c96d10
WaiterWoken        Yes
LockCount          520027693
RecursionCount     1097194433
OwningThread       ffffffff8c000036
EntryCount         0
ContentionCount    0
*** Locked

CritSec +83c96d10 at 83c96d10
WaiterWoken        Yes
LockCount          520027693
RecursionCount     1097194433
OwningThread       ffffffff8c000036
EntryCount         0
ContentionCount    0
*** Locked

Scanned 1223 critical sections

I don't know what to do with this result, As you can see here, LockCount and RecursionCount have strange numbers.

Thanks.</description>
		<content:encoded><![CDATA[<p>Hi Dmitry, </p>
<p>I&#8217;m facing a problem with hang threads. when I executed the command !locks I got this: </p>
<p>0:000&gt; !locks</p>
<p>CritSec +83eb6d10 at 83eb6d10<br />
WaiterWoken        No<br />
LockCount          -452697857<br />
RecursionCount     36294152<br />
OwningThread       a<br />
EntryCount         1379620<br />
ContentionCount    1379620<br />
*** Locked</p>
<p>CritSec +840d6d10 at 840d6d10<br />
WaiterWoken        Yes<br />
LockCount          -60090439<br />
RecursionCount     1093776890<br />
OwningThread       ffffffffadcb569d<br />
EntryCount         0<br />
ContentionCount    0<br />
*** Locked</p>
<p>CritSec +840d6d10 at 840d6d10<br />
WaiterWoken        Yes<br />
LockCount          -60090439<br />
RecursionCount     1093776890<br />
OwningThread       ffffffffadcb569d<br />
EntryCount         0<br />
ContentionCount    0<br />
*** Locked</p>
<p>CritSec +86156d10 at 86156d10<br />
WaiterWoken        Yes<br />
LockCount          -278997059<br />
RecursionCount     1224415142<br />
OwningThread       ffffffff9e8e4272<br />
EntryCount         0<br />
ContentionCount    0<br />
*** Locked</p>
<p>CritSec +83c96d10 at 83c96d10<br />
WaiterWoken        Yes<br />
LockCount          520027693<br />
RecursionCount     1097194433<br />
OwningThread       ffffffff8c000036<br />
EntryCount         0<br />
ContentionCount    0<br />
*** Locked</p>
<p>CritSec +83c96d10 at 83c96d10<br />
WaiterWoken        Yes<br />
LockCount          520027693<br />
RecursionCount     1097194433<br />
OwningThread       ffffffff8c000036<br />
EntryCount         0<br />
ContentionCount    0<br />
*** Locked</p>
<p>Scanned 1223 critical sections</p>
<p>I don&#8217;t know what to do with this result, As you can see here, LockCount and RecursionCount have strange numbers.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: winston</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-293026</link>
		<dc:creator>winston</dc:creator>
		<pubDate>Wed, 08 Jun 2011 09:29:42 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-293026</guid>
		<description>Could you share me more about the deadlock caused by critical section and kernel object?
How to debug into this scenario？
For example,
ThreadA:
    EnterCriticalSection1
    WaitForSingleObject2 (Event)
    
ThreadB:
    EnterCriticalSection1
    Event Reset/Activate

now, if threada get run firstly, enter critical section1, but need to wait the event, threadb want to reset the event, but need to require access to critical section.

how to detect such deadlock in the dump file?</description>
		<content:encoded><![CDATA[<p>Could you share me more about the deadlock caused by critical section and kernel object?<br />
How to debug into this scenario？<br />
For example,<br />
ThreadA:<br />
    EnterCriticalSection1<br />
    WaitForSingleObject2 (Event)</p>
<p>ThreadB:<br />
    EnterCriticalSection1<br />
    Event Reset/Activate</p>
<p>now, if threada get run firstly, enter critical section1, but need to wait the event, threadb want to reset the event, but need to require access to critical section.</p>
<p>how to detect such deadlock in the dump file?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Icons for Memory Dump Analysis Patterns (Part 13)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-138264</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Icons for Memory Dump Analysis Patterns (Part 13)</dc:creator>
		<pubDate>Fri, 26 Mar 2010 12:08:01 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-138264</guid>
		<description>[...] Today we introduce an icon for Deadlock (critical sections) pattern: [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Today we introduce an icon for Deadlock (critical sections) pattern: [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Deadlock Patterns</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-65348</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Deadlock Patterns</dc:creator>
		<pubDate>Tue, 17 Feb 2009 08:29:18 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-65348</guid>
		<description>[...] Deadlock (critical sections) [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Deadlock (critical sections) [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Crash Dump Analysis Patterns (Part 9e)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-48465</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Crash Dump Analysis Patterns (Part 9e)</dc:creator>
		<pubDate>Sat, 25 Oct 2008 06:04:54 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-48465</guid>
		<description>[...] involving mixed objects in kernel space. Previously we discussed deadlock patterns involving critical sections in user space, executive resources in kernel space, mixed objects in user space and [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] involving mixed objects in kernel space. Previously we discussed deadlock patterns involving critical sections in user space, executive resources in kernel space, mixed objects in user space and [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: !analyze -v : Crash Dump Analysis Patterns (Part 9a)</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-43172</link>
		<dc:creator>!analyze -v : Crash Dump Analysis Patterns (Part 9a)</dc:creator>
		<pubDate>Thu, 18 Sep 2008 05:26:47 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-43172</guid>
		<description>[...] 원문 링크: http://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/ [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] 원문 링크: <a href="http://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/" rel="nofollow">http://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/</a> [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Crash Dump Analysis &#187; Blog Archive &#187; Exception and deadlock: pattern cooperation</title>
		<link>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-35242</link>
		<dc:creator>Crash Dump Analysis &#187; Blog Archive &#187; Exception and deadlock: pattern cooperation</dc:creator>
		<pubDate>Tue, 22 Jul 2008 16:14:28 +0000</pubDate>
		<guid>https://www.dumpanalysis.org/blog/index.php/2007/02/09/crash-dump-analysis-patterns-part-9a/#comment-35242</guid>
		<description>[...] When a process experienced an unhandled exception what were the possible reasons for a postmortem debugger not saving a crash dump? One of them will be illustrated in this post. The process AppA was hanging and causing another process AppB to hang too (see Coupled Processes pattern). If we look at AppA locked critical sections we would see a loader deadlock: [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] When a process experienced an unhandled exception what were the possible reasons for a postmortem debugger not saving a crash dump? One of them will be illustrated in this post. The process AppA was hanging and causing another process AppB to hang too (see Coupled Processes pattern). If we look at AppA locked critical sections we would see a loader deadlock: [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
