我有用 C# 编写的覆盖线程程序(控制台应用程序)
它运行正常长达 6 -10 小时后它失败并停止,控制台不关闭并显示最后一个成功的日志
它写入文件中的错误日志(所有可能的)。
如果发生 IO 异常,它会将其写入 Windows 事件
还有 Memory Guard 和 Thread Guards 将程序限制在给定的限制。
当它停止时(6-10 小时后)没有任何反应,没有错误日志、心跳、数据库调用、内存使用情况,我可以看到线程在最大限制设置的 70% 左右产生。
我知道这可能是内存泄漏,因为由于数据库调用延迟,线程可能无法释放。
我只是想处理这个停止的应用程序以了解确切的问题,例如内存泄漏在哪里或哪个调用阻塞。
是否有任何可用的工具适用于这个挂起/停止的应用程序?什么应该是正确的方法。
我使用了 ANTS 内存分析器、性能分析器,但所有这些工具都适用于正在运行的应用程序。
我能得到的最多的是内存转储。
欢迎提出建议。
编辑:最初我不想重新运行它等待几个小时来调试,如果没有办法,那将是最后的选择。
我试图附加调试器并放置断点,它说“断点当前不会命中......”