2014-02-05 54 views
0

我剛剛在Windows 7中的IIS 7.5中關閉了應用程序池,因爲我認爲5分鐘的時間內有5個stackoverflow。如何使用WinDbg分析崩潰轉儲

下面是對關閉的說明: 由於服務該應用程序池的進程中存在一系列故障,因此應用程序池「我的軟件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 
--------- 
+1

+ 0x216fe7的偏移量太大。您的符號不正確,因此方法名稱也不可靠。你使用'.symfix c:\ symbols'並且你有互聯網接入嗎? –

+0

錯誤代碼說明了有關防護頁的一些內容。您是否爲W3WP.exe啓用GFlags? –

+0

感謝您的反饋。我沒有啓用警戒頁面。 – localman

回答

0

您從!analyze -v得到的堆棧看起來不可靠。堆棧中的所有功能都相同:「System_ni System.Net.Mail.SmtpClient.Send(System.Net.Mail.MailMessage)+ 0x216fe7!」

除非你打一個無限遞歸,該函數內! ?

我的2美分 a。請加載符號 對於堆流溢出異常,故障堆棧通常指向罪魁禍首。但如果沒有符號,這將是非常困難的。 b。看看所有線程的堆棧。你可能會得到更多的指示。

+0

謝謝Amitkun。它實際上是一個無限遞歸 - 從認證問題流入。 – localman

0

我在事件查看器中發現了另外一個條目,它揭示了這一點。在這一點上,我懷疑它與smtp不是來自經過驗證的地址有關 - 這實際上與它試圖打電話的問題有關。

不是一個具體的答案,關於解釋上述日誌,但應該是解決我的問題。

謝謝托馬斯。