如何使用WinDbg分析崩溃转储

时间:2014-02-05 21:09:04

标签: stack-overflow windbg system.net.mail

我刚刚在Windows 7中的IIS 7.5中关闭了应用程序池,因为我认为在5分钟的空间内有5次堆栈溢出。

以下是关闭的解释: 应用程序池“我的软件AppPool”由于为该应用程序池提供服务的一系列故障而被自动禁用。

使用WinDbg,我运行命令'!analyze -v',并在下面提出异常分析。它似乎与System.Net.Mail.SmtpClient.Send有关,但这似乎没有意义。

任何想法都会很棒! THX。

FAULTING_IP: 
clr!StrongNameErrorInfo+4f94d
000007fe`f9d265ed 4889842498000000 mov     qword ptr [rsp+98h],rax

EXCEPTION_RECORD:  ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 000007fef9c20e8f (clr!CoUninitializeEE+0x000000000000d14f)
   ExceptionCode: c00000fd (Stack overflow)
  ExceptionFlags: 00000001
NumberParameters: 2
   Parameter[0]: 0000000000000001
   Parameter[1]: 0000000004c65f88

PROCESS_NAME:  w3wp.exe

FAULTING_MODULE: 0000000077230000 ntdll

DEBUG_FLR_IMAGE_TIMESTAMP:  5073c71b

ERROR_CODE: (NTSTATUS) 0xc00000fd - A new guard page for the stack cannot be created.

EXCEPTION_CODE: (NTSTATUS) 0xc00000fd - A new guard page for the stack cannot be created.

EXCEPTION_PARAMETER1:  0000000000000001

EXCEPTION_PARAMETER2:  0000000004c65f88

RECURRING_STACK: From frames 0xd to 0x4b

MOD_LIST: <ANALYSIS/>

MANAGED_STACK: 
    SP               IP               Function
    0000000004C71DF0 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004C7A560 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004C82CD0 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004C8B440 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004C93BB0 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004C9C320 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CA4A90 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CAD200 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CB5970 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CBE0E0 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CC6850 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CCEFC0 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7
    0000000004CD7730 000007FEF87B5C77 System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7

MANAGED_STACK_COMMAND:  !do 0000000000000000


LAST_CONTROL_TRANSFER:  from 000007fef9cc9dda to 000007fef9c20e8f

ADDITIONAL_DEBUG_TEXT:  
Use '!findthebuild' command to search for the target build information.
If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols. ; Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD]

FAULTING_THREAD:  ffffffffffffffff

BUGCHECK_STR:  APPLICATION_FAULT_STACK_OVERFLOW_WRONG_SYMBOLS_CALL

PRIMARY_PROBLEM_CLASS:  STACK_OVERFLOW_CALL

DEFAULT_BUCKET_ID:  STACK_OVERFLOW_CALL

STACK_TEXT:  
00000000`04c71df0 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04c7a560 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04c82cd0 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04c8b440 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04c93bb0 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04c9c320 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04ca4a90 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04cad200 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04cb5970 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04cbe0e0 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04cc6850 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04ccefc0 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7
00000000`04cd7730 00000000`ffffffff system_ni!System.Net.Mail.SmtpClient.Send+0x216fe7


SYMBOL_NAME:  system_ni!System.Net.Mail.SmtpClient.Send

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: system_ni

IMAGE_NAME:  System.ni.dll

STACK_COMMAND:  !do 0000000000000000
 ; ** Pseudo Context ** ; kb

BUCKET_ID:  WRONG_SYMBOLS

FAILURE_BUCKET_ID:  STACK_OVERFLOW_CALL_c00000fd_System.ni.dll!System.Net.Mail.SmtpClient.Send

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/w3wp_exe/7_5_7600_16385/4a5bd0eb/clr_dll/4_0_30319_296/50483916/c00000fd/00010e8f.htm?Retriage=1

Followup: MachineOwner
---------

2 个答案:

答案 0 :(得分:0)

我在事件查看器中找到了另一个条目,对此有所了解。在这一点上,我怀疑它与smtp没有来自经过身份验证的地址有关 - 这实际上与它试图过于频繁地进行调用的问题有关。

关于解释上述日志的答案并不是特定的答案,但应该是我的问题的解决方案。

谢谢托马斯。

答案 1 :(得分:0)

你得到的堆栈!a​​nalyze -v看起来不可靠。堆栈中的所有函数都是相同的:'System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+ 0x216fe7'

除非你在该函数中进行无限递归! ?

我的2美分 一个。请加载符号    对于堆栈溢出异常,它自身的错误堆栈通常指向罪魁祸首。但如果没有符号,就很难搞清楚。 湾看一下所有线程的堆栈。你可能会得到更多的指示。