调试多个exe程序

标签 debugging project

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

它是一个非常关键的组件,没有它什么都做不了。它需要执行并能够在没有用户交互的情况下长时间运行。

它实际上是一个本地 C++/ATL 项目,使用 COM 在其两个可执行文件之间进行通信。

我现在花了很多时间实际研究代码并寻找明显的代码缺陷,例如没有锁定共享变量(那些很明显的),不对异常做任何事情的异常处理程序,除了'返回 false',即使这可能是一个严重的异常。

但我想知道是否有人对解决这样的项目有一些建议,很多人实际上已经尝试解决这个问题但失败了,现在你已经接受了挑战并且不想失败。

我准备好去解决这个问题,但是我需要一些指导来了解如何以好的方式解决这个问题?

我的想法是先搭建一个测试环境,希望能尽可能多的收集到已经发生的crash信息,然后通过logging,stack trace等方式找到crash的点。这可能是也可能不是调试此类项目的好方法。

有任何意见吗?

最佳答案

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

  1. 尽可能多地收集有关崩溃源(用户、开发人员等)的信息。
  2. 检查文档和依赖项。
  3. 检查源代码。
  4. 构建一个独立的测试环境并尝试重现。

如果您仍然找不到错误的来源,请尝试清理源代码并添加更详细的日志记录系统。

问候

关于调试多个exe程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149828/

相关文章:

c - 用 C 中的数字对填充数组

iphone - 使用 iPhone 应用程序进行 Xcode 调试缓慢且滞后

debugging - Elisp 调用具有不同结果的 Go 代码

java - 如何在 eclipse 中调试 groovy 代码 (Play-Framework)

debugging - ELF 文件 - 获取字符串使用位置的函数

javascript - npm的 `debug`包: show logs from 2 packages

python - 我可以用 fusion-python 实现有趣的项目

java - 如何让用户输入字符串,然后对数组进行排序以根据输入的代码显示字符串

java - 如何找到项目所需的最小堆大小

java - 在 jdeveloper 10g 中导出 war 文件