【发布时间】:2015-03-25 22:40:24
【问题描述】:
我有一个项目,我需要修复该程序,该程序可能会非常不确定地崩溃。该软件执行大量计算和数据库调用,并且可能具有非常高的负载,这意味着大量的客户端。
这是一个非常关键的组件,没有它就没有任何作用。它需要执行并且能够在没有用户交互的情况下长时间运行。
它实际上是一个带有 COM 的原生 C++/ATL 项目,用于在其两个可执行文件之间进行通信。
我现在花了很多时间实际研究代码并寻找明显的代码缺陷,例如不锁定共享变量(那些显而易见的),不做任何异常的异常处理程序,除了' return false',即使这可能是一个严重的异常。
但我想知道是否有人对解决这样的项目有一些提示,许多人实际上试图解决问题并失败了,现在你已经接受了挑战并且不想失败。
我已经准备好去解决这个问题,但是我需要一些指导来了解如何以一种好的方式解决这个问题?
我的想法是先搭建一个测试环境,希望尽可能多的收集到确实发生的崩溃信息,然后通过日志、堆栈跟踪等找到崩溃的点。这可能是也可能不是调试此类项目的好方法。
感谢您的意见?
【问题讨论】: