.NET 1.1 + WinDBG + SOS-clrstack不显示信息 [英] .NET 1.1 + WinDBG + SOS - clrstack is not displaying information
问题描述
嗨-
背景:
-我们有一个在Windows Server 2003(IIS6)上运行的.NET 1.1 C#Web服务.在w3wp进程中运行的.NET有时会引发System.OutOfMemoryException.发生这种情况时,我会记满 使用DebugDiag转储.
-我的开发机器是Windows XP SP3.我已经安装了最新版本的WinDBG-> 6.12.0002.633.当我启动WinDBG时,我会加载\ framework \ v1.1.4322文件夹下存在的sos.dll.
-我的符号文件路径是SRV * c:\ temp \ symbols * http://msdl.microsoft.com/download/symbols
-我可以使用!Threads查看托管线程.我可以看到几个线程都有System.OutOfMemoryException.这是列出的一些线程的示例.
14 17c0 000eee00 180a220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) 22 1f64 000ea280 b220 Enabled 00000000:00000000 000e5e38 0 MTA (Finalizer) 15 1a64 00141dc8 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 16 1d6c 0234fca0 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 24 1430 0015ea28 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 26 1314 0238ac90 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) 27 1e20 023d9f88 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 28 1ee4 023d4988 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 29 bb4 023b6c88 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException XXX 0 0333d800 1800820 Enabled 00000000:00000000 000e5e38 0 Ukn (Threadpool Worker) XXX 0 0335d008 1800820 Enabled 00000000:00000000 000e5e38 0 Ukn (Threadpool Worker) 30 1f3c 033e2008 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker)
-不幸的是,当我输入〜* e!clrstack评估所有线程的堆栈跟踪时,我得到以下列表...
Thread 0 Not a managed thread. Thread 1 Not a managed thread. Thread 2 Not a managed thread. Thread 3 Not a managed thread. Thread 4 Not a managed thread. Thread 5 Not a managed thread. Thread 6 ESP EIP Thread 7 ESP EIP Thread 8 Not a managed thread. Thread 9 Not a managed thread. Thread 10 Not a managed thread. Thread 11 Not a managed thread. Thread 12 ESP EIP Thread 13 Not a managed thread. Thread 14 ESP EIP Thread 15 ESP EIP Thread 16 ESP EIP Thread 17 Not a managed thread. Thread 18 Not a managed thread. Thread 19 Not a managed thread. Thread 20 Not a managed thread. Thread 21 Not a managed thread. Thread 22 ESP EIP Thread 23 Not a managed thread. Thread 24 ESP EIP Thread 25 ESP EIP Thread 26 ESP EIP Thread 27 ESP EIP Thread 28 ESP EIP Thread 29 ESP EIP Thread 30 ESP EIP Thread 31 ESP EIP Thread 32 ESP EIP Thread 33 ESP EIP Thread 34 ESP EIP Thread 35 ESP EIP Thread 36 ESP EIP Thread 37 Not a managed thread. Thread 38 Not a managed thread. Thread 39 Not a managed thread. Thread 40 Not a managed thread.
我希望看到更多信息来帮助对托管线程进行故障排除.我没有ESP或EIP的任何地址,也没有方法的名称.
这是一个生产应用程序,因此我没有任何.pdb文件.这会引起我的问题吗?
此外,我还尝试使用附有windbg的clr10 \ sos.dll. 结果相同.
任何帮助将不胜感激.
谢谢
PDB与它无关.托管调试不需要它们.
很可能这些线程不再具有任何托管功能. 当您运行〜* k时,您会看到什么?
应该显示它是托管的还是本机的.另外,当它们第一次运行!clrstack时,您会收到任何消息吗?
如果它不是一个完整的内存转储,这也会导致!clrstack也失败.
可以尝试上述操作,如果这样做没有帮助,我们可能需要在此处查看转储.
Hi -
BACKGROUND:
--We have a .NET 1.1 C# Web Service running on Windows Server 2003 (IIS6). .NET running within the w3wp process is occassionally throwing System.OutOfMemoryException. When this occurs I take a full memory dump using DebugDiag.
--My development machine is Windows XP SP3. I have the latest version of WinDBG installed -> 6.12.0002.633. When i start WinDBG i load the sos.dll that exists under the \framework\v1.1.4322 folder.
--My symbol file path is SRV*c:\temp\symbols*http://msdl.microsoft.com/download/symbols
--I can view the Managed Threads using !Threads. I can see several of the threads have a System.OutOfMemoryException. Here is a sample of a few of the threads listed.
14 17c0 000eee00 180a220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) 22 1f64 000ea280 b220 Enabled 00000000:00000000 000e5e38 0 MTA (Finalizer) 15 1a64 00141dc8 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 16 1d6c 0234fca0 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 24 1430 0015ea28 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 26 1314 0238ac90 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) 27 1e20 023d9f88 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 28 1ee4 023d4988 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException 29 bb4 023b6c88 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker) System.OutOfMemoryException XXX 0 0333d800 1800820 Enabled 00000000:00000000 000e5e38 0 Ukn (Threadpool Worker) XXX 0 0335d008 1800820 Enabled 00000000:00000000 000e5e38 0 Ukn (Threadpool Worker) 30 1f3c 033e2008 1800220 Enabled 00000000:00000000 000e5e38 0 MTA (Threadpool Worker)
--Unfortunately when I type ~*e !clrstack to evaluate the stack trace for all threads i get the following list...
Thread 0 Not a managed thread. Thread 1 Not a managed thread. Thread 2 Not a managed thread. Thread 3 Not a managed thread. Thread 4 Not a managed thread. Thread 5 Not a managed thread. Thread 6 ESP EIP Thread 7 ESP EIP Thread 8 Not a managed thread. Thread 9 Not a managed thread. Thread 10 Not a managed thread. Thread 11 Not a managed thread. Thread 12 ESP EIP Thread 13 Not a managed thread. Thread 14 ESP EIP Thread 15 ESP EIP Thread 16 ESP EIP Thread 17 Not a managed thread. Thread 18 Not a managed thread. Thread 19 Not a managed thread. Thread 20 Not a managed thread. Thread 21 Not a managed thread. Thread 22 ESP EIP Thread 23 Not a managed thread. Thread 24 ESP EIP Thread 25 ESP EIP Thread 26 ESP EIP Thread 27 ESP EIP Thread 28 ESP EIP Thread 29 ESP EIP Thread 30 ESP EIP Thread 31 ESP EIP Thread 32 ESP EIP Thread 33 ESP EIP Thread 34 ESP EIP Thread 35 ESP EIP Thread 36 ESP EIP Thread 37 Not a managed thread. Thread 38 Not a managed thread. Thread 39 Not a managed thread. Thread 40 Not a managed thread.
I would expect to see more information to help troubleshoot the managed threads. I don't get any addresses for ESP or EIP nor do I get method names.
This is a production application and thus I don't have any .pdb files for it. Would this be causing my problem?
Also, I have also tried using the clr10\sos.dll that comes w/ windbg. Same results.
Any help would be appreciated.
Thanks
PDB's don't have anything to do with it. They aren't needed for managed debugging.
Most likely the threads don't have any managed functions on them anymore. When you run ~*k, what do you see?
That should show if it is managed or native. Also, do you get any messages when they first run !clrstack?
If it isn't a full memory dump, that would cause !clrstack to fail also.
The options would be to try the above and if that doesn't help, we may need to look at the dump here.
这篇关于.NET 1.1 + WinDBG + SOS-clrstack不显示信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!