2011-04-29 65 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