【问题标题】:How to analyze Crash Dump using WinDbg如何使用 WinDbg 分析故障转储
【发布时间】:2014-02-05 21:09:03
【问题描述】:

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

以下是关闭的解释: 由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池“My Softwares AppPool”被自动禁用。

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

任何想法都会很棒!谢谢。

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
---------

【问题讨论】:

  • +0x216fe7 的偏移量太大。您的符号不正确,因此方法名称也不可靠。您是否使用过.symfix c:\symbols 并且可以访问互联网?
  • 错误代码说明了保护页面。您是否为 W3WP.exe 启用了 GFlags?
  • 感谢您的反馈。我没有启用保护页面。

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


【解决方案1】:

您从 !analyze -v 获得的堆栈看起来并不可靠。堆栈中的所有函数都相同:'System_ni!System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+0x216fe7'

除非您在该函数中遇到无限递归! ?

我的 2 美分 一种。请加载符号 对于堆栈溢出异常,它自身的故障堆栈通常指向罪魁祸首。但是没有符号就很难辨认。 湾。查看所有线程的堆栈。您可能会得到一些进一步的指示。

【讨论】:

  • 谢谢阿米特昆。这实际上是一个无限递归 - 从身份验证问题开始。
【解决方案2】:

我在事件查看器中发现了另一个条目,对此有所了解。在这一点上,我怀疑这与 smtp 不是来自经过身份验证的地址有关 - 这实际上与它尝试频繁拨打电话的问题有关。

不是一个具体的答案,关于解释上述日志,但应该是我的问题的解决方案。

谢谢托马斯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多