У меня есть приложение .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);
}
}
Этот вопрос трудно ответить .. Вы получили сообщение об ошибке/сообщении вообще? Просто сказать, что приложение разбилось, невозможно отладить без лишних подробностей! – Dave
@ user2652946 Как насчет этого процесса, если вы запустите приложение и запустите диспетчер задач - действительно ли процесс начинается? Это работает некоторое время, а затем просто заканчивается? – Hexie
Попробуйте использовать диагностический инструмент отладки. Это хорошая отправная точка. http://www.microsoft.com/en-us/download/details.aspx?id=26798 – jlvaquero