2011-04-29 49 views
-1

我很新使用WinDbg,但最近我的應用程序開始出現問題,但只在Windows 7計算機上運行良好(第一次啓動PC時它運行正常,但每次都會以靜默方式崩潰或消失) 。WinDbg幫助請致電

我得到了mdmp文件,但發現自己有點缺乏如何最好地從中提取我需要的數據。我得到了以下的分析(可能是做錯了)......

誰能希望能幫助一些線索我的問題,或者如果我正確運行分析:

0:000> !analyze -v 
******************************************************************************* 
*                    * 
*      Exception Analysis         * 
*                    * 
******************************************************************************* 

GetPageUrlData failed, server returned HTTP status 404 
URL requested: http://watson.microsoft.com/StageOne/Star_exe/1_0_0_0/4dbad268/KERNELBASE_dll/6_1_7600_16385/4a5bdaae/e0434352/00009617.htm?Retriage=1 

FAULTING_IP: 
KERNELBASE!RaiseException+58 
752d9617 c9    leave 

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) 
ExceptionAddress: 752d9617 (KERNELBASE!RaiseException+0x00000058) 
    ExceptionCode: e0434352 (CLR exception) 
    ExceptionFlags: 00000001 
NumberParameters: 5 
    Parameter[0]: 80070002 
    Parameter[1]: 00000000 
    Parameter[2]: 00000000 
    Parameter[3]: 00000000 
    Parameter[4]: 57af0000 

PROCESS_NAME: Star.exe 

ERROR_CODE: (NTSTATUS) 0xe0434352 - <Unable to get error code text> 

EXCEPTION_CODE: (NTSTATUS) 0xe0434352 - <Unable to get error code text> 

EXCEPTION_PARAMETER1: 80070002 

EXCEPTION_PARAMETER2: 00000000 

EXCEPTION_PARAMETER3: 00000000 

EXCEPTION_PARAMETER4: 0 

MOD_LIST: <ANALYSIS/> 

NTGLOBALFLAG: 0 

APPLICATION_VERIFIER_FLAGS: 0 

MANAGED_STACK: !dumpstack -EE 
No export dumpstack found 

MANAGED_BITNESS_MISMATCH: 
Managed code needs matching platform of sos.dll for proper analysis. Use 'x86' debugger. 

ADDITIONAL_DEBUG_TEXT: Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD] 

LAST_CONTROL_TRANSFER: from 57c03970 to 752d9617 

FAULTING_THREAD: ffffffff 

DEFAULT_BUCKET_ID: STACKIMMUNE 

PRIMARY_PROBLEM_CLASS: STACKIMMUNE 

BUGCHECK_STR: APPLICATION_FAULT_STACKIMMUNE_NOSOS_CLR_EXCEPTION_WRONG_SYMBOLS 

STACK_TEXT: 
00000000 00000000 star.exe+0x0 


SYMBOL_NAME: star.exe 

FOLLOWUP_NAME: MachineOwner 

MODULE_NAME: star 

IMAGE_NAME: Star.exe 

DEBUG_FLR_IMAGE_TIMESTAMP: 4dbad268 

STACK_COMMAND: ** Pseudo Context ** ; kb 

FAILURE_BUCKET_ID: STACKIMMUNE_e0434352_Star.exe!Unknown 

BUCKET_ID: APPLICATION_FAULT_STACKIMMUNE_NOSOS_CLR_EXCEPTION_WRONG_SYMBOLS_star.exe 

FOLLOWUP_IP: *** WARNING: Unable to verify timestamp for Star.exe 

Star!.ctor+0 [C:\Users\Aj\Documents\Visual Studio 2010\Projects\Star\Star\ViewModels\ViewModelBase.cs @ 22] 
00360000 ??    ??? 

WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/Star_exe/1_0_0_0/4dbad268/KERNELBASE_dll/6_1_7600_16385/4a5bdaae/e0434352/00009617.htm?Retriage=1 

Followup: MachineOwner 
--------- 
+0

首先獲取與Win7機器(和相同體系結構-x86或x64)上.Net框架版本對應的正確sos.dll。您可以從使用相同版本的任何其他機器崩潰的同一臺機器中獲得。在調試器內部使用'.load'命令加載它並獲得正確的堆棧跟蹤。添加這個堆棧跟蹤到你的問題,有人應該能夠從那裏幫助。 – 2011-05-03 03:36:25

回答

1

經過幾周的搜索(也許更多),事實證明,當使用趨勢科技企業,XP到Server 2003是好的,Vista和Windows 7到2003是好的,甚至XP/Vista到服務器2008是沒問題,但是(我不知道爲什麼),當使用Windows 7並嘗試在快捷方式中使用UNC路徑運行網絡應用程序時,它會阻止該應用程序的某些網絡流量,並且它會偶爾出現似乎沒有任何合理的邏輯。我不能說爲什麼,因爲我們從來沒有弄清楚究竟是什麼催化劑引發趨勢,但我知道,當我們禁用趨勢時,一切都恢復正常(我希望我們儘早嘗試的東西)。我們發現,通過將驅動器映射到我們的共享中並將我們的用戶工作站上的快捷方式更改爲使用映射的驅動器而不是UNC路徑,問題得以避免。

希望沒有其他人會遇到這個問題,但如果他們這樣做,這可能會揭示這個問題。

謝謝! Aj

1

您可能希望以這篇文章爲出發點:SOS: It's Not Just an ABBA Song Anymore

看起來您的應用程序是.NET應用程序,請確保您已安裝正確的.NET Framework。將sos.dll文件加載到windbg時,可能需要提供完整路徑。此外,您可以設置對公用Microsoft符號服務器的訪問,以幫助您進行一些堆棧跟蹤。本文可能有所幫助:Debugging Tools and Symbols: Getting Started。確保你有最新版本的調試工具。 !

!分析會給你一些關於故障的信息,但不會太多。你應該看看第一篇文章,看看還有哪些事情正在進行。

發佈有關您的應用程序的一些信息也將幫助人們看到您是否有類似的問題。

它看起來像你的ViewModelBase.cs文件中發生故障。您可能需要添加一些日誌記錄(使用log4net或類似工具)來捕獲異常並打印出堆棧跟蹤。您還可以鉤入AppDomain.CurrentDomain.UnhandledException event(或WPF應用程序的Application.DispatcherUnhandledException event),以捕獲任何正在拋出的內容並將某些內容打印到日誌文件中。在這種情況下,你將不需要求助於WinDbg來弄清楚發生了什麼。

+0

嗨@Garo,感謝您的迴應 - 我不幸的是從那篇文章開始,並得到SOS加載,但沒有得到比上面公佈的有用信息。我的問題是我的開發環境是Vista x64,而PC的問題在Win 7上,而我沒有遠程調試的能力......有點卡在一塊岩石和一個艱難的地方之間: - \ – Aaj 2011-04-29 17:53:15

+0

它看起來像!分析軌跡,但您需要強制它運行32位windbg。消息「代碼需要sos.dll的匹配平臺才能正確分析」。如果你的轉儲來自32位系統,那麼你應該可以使用32位windbg來捅它(理論上)。 – 2011-05-02 13:36:09