.NET 1.1 + WinDBG + SOS-clrstack不显示信息 [英] .NET 1.1 + WinDBG + SOS - clrstack is not displaying information

查看:89
本文介绍了.NET 1.1 + WinDBG + SOS-clrstack不显示信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨-

 背景:

   -我们有一个在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆