如何解决如何使用Windbg检查转储分析中每分钟正在等待哪个线程
我已使用任务管理器对正在运行的应用程序进行转储,并在windbg中打开了转储。 我知道在我的C#应用程序中,线程之一正在轮询某些任务1分钟。如果没有收到,它将等待10毫秒,然后再次开始轮询1分钟。 我在转储文件中看到了很多线程:
~
# 0 Id: 2208.1aa8 Suspend: 0 Teb: 00000098`eecc4000 Unfrozen
1 Id: 2208.5cc Suspend: 0 Teb: 00000098`eeccc000 Unfrozen
2 Id: 2208.c38 Suspend: 0 Teb: 00000098`eecce000 Unfrozen
3 Id: 2208.2810 Suspend: 0 Teb: 00000098`eecda000 Unfrozen
4 Id: 2208.10e0 Suspend: 0 Teb: 00000098`eecdc000 Unfrozen
. 5 Id: 2208.2d28 Suspend: 0 Teb: 00000098`eecde000 Unfrozen
6 Id: 2208.161c Suspend: 0 Teb: 00000098`eece0000 Unfrozen
7 Id: 2208.15e4 Suspend: 0 Teb: 00000098`eece2000 Unfrozen
8 Id: 2208.27a4 Suspend: 0 Teb: 00000098`eece8000 Unfrozen
9 Id: 2208.2308 Suspend: 0 Teb: 00000098`eecec000 Unfrozen
10 Id: 2208.d08 Suspend: 0 Teb: 00000098`eecf2000 Unfrozen
11 Id: 2208.2f7c Suspend: 0 Teb: 00000098`eecf4000 Unfrozen
12 Id: 2208.1338 Suspend: 0 Teb: 00000098`eecfc000 Unfrozen
现在,我该如何检查哪个特定线程正在执行轮询任务。 我尝试查看线程的堆栈跟踪信息,但毫无意义。
例如,线程0具有以下堆栈跟踪:
0 Id: 2208.1aa8 Suspend: 0 Teb: 00000098`eecc4000 Unfrozen
Start: IDBrigade+0x4bf0e (0000019d`b17bbf0e)
Priority: 0 Priority class: 32 Affinity: f
Child-SP RetAddr Call Site
00000098`eeefe8a8 00007ffb`13e88933 ntdll!ZwWaitForSingleObject+0x14
00000098`eeefe8b0 00007ffb`153415bf KERNELBASE!WaitForSingleObjectEx+0x93
00000098`eeefe950 00007ffb`15340ea0 sechost!ScSendResponseReceiveControls+0x13b
00000098`eeefea90 00007ffb`153419e0 sechost!ScDispatcherLoop+0x140
00000098`eeefebd0 00007ffb`02cfbf47 sechost!StartServiceCtrlDispatcherW+0x70
00000098`eeefec00 00007ffb`02cfeea6 System_ServiceProcess_ni+0x2bf47
00000098`eeefecb0 00007ffa`a75004fb System_ServiceProcess_ni+0x2eea6
00000098`eeefed20 00007ffb`06ae6813 0x7ffa`a75004fb
00000098`eeefed70 00007ffb`06ae66c8 clr!CallDescrWorkerInternal+0x83
00000098`eeefedb0 00007ffb`06ae6d9d clr!CallDescrWorkerWithHandler+0x4e
00000098`eeefedf0 00007ffb`06b4d16c clr!MethodDescCallSite::CallTargetWorker+0xf8
00000098`eeefeef0 00007ffb`06b4d356 clr!RunMain+0x1e7
00000098`eeeff0d0 00007ffb`06b4d24b clr!Assembly::ExecuteMainMethod+0xb6
00000098`eeeff3c0 00007ffb`06b4d044 clr!SystemDomain::ExecuteMainMethod+0x57c
00000098`eeeff9d0 00007ffb`06b4cfc2 clr!ExecuteEXE+0x3f
00000098`eeeffa40 00007ffb`06b4d3f4 clr!_CorExeMainInternal+0xb2
00000098`eeeffad0 00007ffb`07947cbd clr!CorExeMain+0x14
00000098`eeeffb10 00007ffb`0821a57c mscoreei!CorExeMain+0x112
00000098`eeeffb70 00007ffb`14e47974 mscoree!CorExeMain_Exported+0x6c
00000098`eeeffba0 00007ffb`17a1a271 kernel32!BaseThreadInitThunk+0x14
00000098`eeeffbd0 00000000`00000000 ntdll!RtlUserThreadStart+0x21
我对此无能为力。任何人都可以帮忙吗?这是我第一次进行线程转储分析。.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。