0:000>
~87s
eax=00000000
ebx=00000001 ecx=00000000 edx=00000000 esi=00000001 edi=00000001
eip=7741c8ac
esp=39b2ec10 ebp=39b2ed98
iopl=0 nv up ei pl nz ac po nc
cs=0023
ss=002b ds=002b es=002b fs=0053
gs=002b
efl=00000212
ntdll!NtWaitForMultipleObjects+0xc:
7741c8ac
c21400
ret 14h
0:087> !clrstack2 à artık başında a görüldüğü gibi 87 nolu thread'e geçti.
DbgId
ThreadId Apartment Kind
CLR
GC Mode GC Suspending?
87 11fc4
MTA
v4.0.30319.34209 Preemptive no
MonitorWait
-----------
Method
XXXXXXX.Esb.Queue.QueueManager.GetNextMessage()
Monitor
Address 0x0000000020421088
SP
IP
Function
Source
39b2ef7c
00000000
GCFrame
39b2f02c
00000000 HelperMethodFrame_1OBJ [System.Threading.Monitor.ObjWait(Boolean,
Int32, System.Object)] à alttaki de bunu
çağırmış.
39b2f0b0
72625d16 System.Threading.Monitor.Wait(System.Object, Int32,
Boolean) à
alttaki getnextmessage methodu bir yerde threadslep yapıyor; bekliyor yani. 87
nolu thread
bekliyor.
39b2f0c0
39006df7
XXXXXX.Esb.Queue.QueueManager.GetNextMessage()
39b2f104
39006ff5
XXXXXXXX.Esb.Queue.WorkerThread.Run()
39b2f128
7259ab43
System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
39b2f134
725ada07
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
39b2f1a0
725ad956
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object,
Boolean)
39b2f1b4
725ad921 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback,
System.Object) à http contextin içine konup istek
gelir soaptan vs. burda contextin içi
kounuyor.
39b2f1cc
7259aacc System.Threading.ThreadHelper.ThreadStart()
à threadim burda
başlar.
39b2f320
00000000
GCFrame
39b2f500
00000000
DebuggerU2MCatchHandlerFrame
39b2f56c
00000000
ContextTransitionFrame
39b2f6f4
00000000 DebuggerU2MCatchHandlerFrame
!name2ee
* XXXXXX.Esb.Queue.WorkerThread.Run komutu ile bu classın bu methodunu tüm
kütüphanelerde ararız.
--------------------------------------
Module:
3647869c à
esb.dll’in memorydeki adresi
Assembly:
XXXXXX.Esb.dll
Token:
0600d745
MethodDesc:
38f4b56c
Name:
XXXXX.Esb.Queue.WorkerThread.Run()
JITTED
Code Address: 39006fd0
--------------------------------------
!savemodule
3647869c C:\Temp\XXXXX.Esb.dll à
bu komut ile esb.dll’i Temp dizinine oluşturmuş oluruz.
Hiç yorum yok:
Yorum Gönder