2013-08-05 69 views
0

我有.net 4.0應用程序崩潰沒有任何異常。當我在我的機器上安裝.net 4.5時,應用程序沒有崩潰。大多數情況下,應用程序在閒置一段時間後會崩潰。 我試圖將應用程序附加到調試器,但沒有幫助。 另外我試圖將應用程序附加到windbg.exe,但這也沒有幫助。.net 4.0應用程序崩潰意外無一例外

其實我的應用程序沒有使用.net 4.5的任何功能。

在Windows事件查看器中,我可以看到應用程序崩潰的以下日誌。 事件日誌: 發生了類型爲「System.AccessViolationException」的未處理異常。 附加信息:試圖讀取或寫入受保護的內存。這通常表明其他內存已損壞。

如果您有任何這方面的經驗或有一些有用的提示或工具,請告訴我!歡迎各種幫助。

堆棧跟蹤:

at RealNative.RealNativeWindowCopy.DispatchMessageW(MSG& msg) 
    at RealNative.RealNativeWindowCopy.LocalModalMessageLoop(Form form) 
    at RealNative.RealNativeWindowCopy.CreateWndAndMsgLoopThreadFunction() 
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Threading.ThreadHelper.ThreadStart() 

可能的功能給錯誤 私人無效CreateWndAndMsgLoopThreadFunction(){ 嘗試 {

   MyNativeWindow nw; 
       nw = new MyNativeWindow(); 
       CreateParams cp = new CreateParams(); 
       cp.Caption = this.m_winTitle; 
       cp.ClassName = "!!" + this.m_classname; // i've modified the treatment so if the classname starts with !!, it will be registered undet that name 
       nw.UserWndProc = new UserWndProc(UserWndProcWrapper); 

       nw.CreateHandle(cp); 
       m_hWnd = nw.Handle; // very important ! 
       // check if handle is null 
       if (m_hWnd == IntPtr.Zero) 
       { 
        MessageBox.Show("VishException in CreateWndAndMsgLoopThreadFunction", "Error", MessageBoxButtons.OKCancel); 
       } 
       while (true) 
       { 
        // 
        // if i'm getting true that means i've got WM_QUIT. 
        // 
        bool bReply = LocalModalMessageLoop(null); 
        if (bReply == true) 
         return; 
       } 
#if _SHOW_DBG_MSGS 
       MDBGLogger.MDBGLogger.AlwaysLine("Exiting messageLoop"); 
#endif 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show("VishException in CreateWndAndMsgLoopThreadFunction", "Error", MessageBoxButtons.OKCancel); 
           } 
     } 
+3

這個問題很難回答..你有沒有得到任何通知/錯誤信息?只是說應用程序崩潰幾乎不可能在沒有更多細節的情況下進行調試! – Dave

+0

@ user2652946如果您運行應用程序並啓動任務管理器,該過程如何啓動?它運行一段時間,然後才結束? – Hexie

+2

嘗試使用調試診斷工具。這是一個很好的起點。 http://www.microsoft.com/en-us/download/details.aspx?id=26798 – jlvaquero

回答