2013-12-12 99 views
1

我在某些点上维护了MFC应用程序,它停止响应30秒,有时会持续1分钟或更长时间。我应该解决这个问题,我试图跟踪代码[在这个类的所有方法],也是问题仍然是,我想在此期间暂停调试和我没有什么,因为这形象如何跟踪导致应用程序挂起的代码

enter image description here

我想知道如何追踪导致应用程序停止响应

+2

当调试器挂起时,您可以使用调试器附加到应用程序吗?堆栈跟踪应该告诉你,它在哪里浪费时间。 –

+0

因此,GetMessage不会返回,而我们看到的是当前的Codelocation,当您打破Break All时? – xMRi

+2

添加跟踪日志记录(带时间戳),您在进入和离开功能时记录日志。从粗略记录开始,然后将其缩小,直到找到发生这种情况的确切函数。然后通过在函数内添加日志语句进一步缩小它的范围。 –

回答

0
  1. 添加监视变量对任何单独的线程事件

    • 增量E中的代码其螺纹
    • 也是非常有用的内部ACH表变量可以是标志,如果线程/事件在执行时(尤其是对于事件)
    • 必须设置该标志上输入
    • 月底退出前明确
  2. 以某种方式可视化观察变量。

    • 要么在您的应用程序内使用一些调试打印。
    • 或使用单独的窗口
    • 或甚至更好的独立应用程序连接任何IPC方法。 (如果您的应用程序UI挂起这会甚至工作)

当应用程序挂起只看到哪些变量递增和不

与标志就可以判断确切什么是挂在你身上。 ..

祝您好运与调试。