2013-08-05 4 views
0

У меня есть приложение .net 4.0, которое сбой без каких-либо исключений. Когда я устанавливаю .NET на моем компьютере, приложение не сбой. В основном приложение сбой при простоя на какое-то время. Я попытался прикрепить приложение к отладчику, но не помогло. Также я попытался прикрепить приложение к windbg.exe, но это тоже не помогло.. NET 4.0 неожиданно неожиданно сбой приложений

Фактически мое приложение не использует какую-либо функцию .net 4.5.

В окне просмотра событий Windows я вижу журнал ниже для сбоя приложения. Журнал событий: Произошло необработанное исключение типа «System.AccessViolationException». Дополнительная информация: Попытка чтения или записи защищенной памяти. Это часто свидетельствует о том, что другая память повреждена.

Если у вас есть опыт работы с этим или есть полезные советы или инструменты, дайте мне знать! Всякая помощь приветствуется.

StackTrace:

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

ответ

Смежные вопросы