Debugging 调试多个exe程序

Debugging 调试多个exe程序,debugging,project,Debugging,Project,我有一个项目,我需要修复这个程序,它有非常不确定地崩溃的趋势。这个软件执行大量的计算和数据库调用,并且可以有非常高的负载,这意味着有很多客户端 它是一个非常关键的组件,没有它,任何东西都无法工作。它需要执行,并且能够在没有用户交互的情况下长时间运行 它实际上是一个原生C++/ATL项目,带有COM,用于在两个可执行文件之间进行通信 我现在已经花了很多时间研究代码,寻找明显的代码缺陷,比如没有锁定共享变量(那些很明显的),异常处理程序除了“return false”之外什么都不做,即使这可能是一个

我有一个项目,我需要修复这个程序,它有非常不确定地崩溃的趋势。这个软件执行大量的计算和数据库调用,并且可以有非常高的负载,这意味着有很多客户端

它是一个非常关键的组件,没有它,任何东西都无法工作。它需要执行,并且能够在没有用户交互的情况下长时间运行

它实际上是一个原生C++/ATL项目,带有COM,用于在两个可执行文件之间进行通信

我现在已经花了很多时间研究代码,寻找明显的代码缺陷,比如没有锁定共享变量(那些很明显的),异常处理程序除了“return false”之外什么都不做,即使这可能是一个关键异常

但是我想知道是否有人有一些关于处理这样一个项目的技巧,在这个项目中,许多人实际上试图解决问题,但失败了,现在你已经接受了挑战,不想失败

我准备走得更远来解决这个问题,但我需要一些指导,如何以一种良好的方式去做呢

我的想法是首先建立一个测试环境,希望收集尽可能多的关于确实发生的崩溃的信息,然后通过日志记录、堆栈跟踪等找到崩溃点。这可能是调试此类项目的好方法,也可能不是


感谢您的任何意见?

这可能是显而易见的,但我对此类错误修复任务的路线图是:

  • 收集尽可能多的崩溃源信息(用户、开发人员等)
  • 检查文档和依赖项
  • 检查源代码
  • 构建一个隔离的测试环境并尝试复制
  • 如果仍然找不到bug的源代码,请尝试清理源代码并添加更详细的日志系统


    关于日志,日志,日志,日志