【发布时间】:2017-09-13 14:16:34
【问题描述】:
我们有一个围绕 VB/C++ 代码构建的自定义应用程序。 此代码将运行数天、数周、数月,而不会引发异常错误。
我正在尝试详细了解如何引发此错误,以及如何解释(如果可以)在引发异常时列出的错误。我已经搜索了一些信息并阅读了 Microsoft 提供的错误描述,但我仍然坚持解决在蓝月亮中发生的事情的任务。没有已知的与软件的交互会导致这种情况,并且似乎是随机发生的。
第一个异常是根本原因吗?一直到堆栈调用吗?谁能提供有关如何阅读这些代码的任何见解,以便我可以解释我实际需要查看的位置。
有关阅读异常或对其进行任何使用以及排除故障的任何信息或指导都会有所帮助。下面的测试是在引发事件时从 Windows 日志中复制的。
提前感谢您的帮助。
Application: Epic.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException [![enter image description here][1]][1]
at MemMap.ComBuf.IsCharAvailable(Int32)
at HMI.frmPmacStat.RefreshTimer_Elapsed(System.Object, System.Timers.ElapsedEventArgs)
at System.Timers.Timer.MyTimerCallback(System.Object)
at System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,
System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireQueuedTimerCompletion(System.Object)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
【问题讨论】:
-
您有可以在 IDE 中打开的故障转储吗?它会在程序崩溃时向您显示程序的状态。
-
我不确定...不是计算机程序员,只是有时不得不涉足的电气工程师。我已经附加了相关的 Windows 日志,并且该应用程序从现场客户机器上的 .exe 运行。
-
一般来说,只要程序试图访问无效的内存地址,就会抛出这个错误。有许多类别的错误可能导致它(例如缓冲区溢出、释放后使用)。它们通常涉及某种未定义的行为,未定义的部分原因是编译器无法识别它们。
-
也许这个帖子可以帮助你stackoverflow.com/questions/12228297/…'
-
您需要有经验的程序员来解决这个问题。最好是参与该项目的人。不仅因为 AVE 是一个非常严重的事故,而且这看起来也是一个线程错误。