我在Windows 2008R2上有一个使用C ++的进程,其中有几个主题。在进程启动期间,有一个线程可能会退出。我没有办法检测发生了什么,有什么建议吗?
根据我的调查,线程只是退出而没有异常。访问空指针可能会导致类似的问题,但我在这个过程中找不到这样的位置。事实上,如果进程崩溃应该会更好,然后我可以得到一个转储文件;但没有任何反应,只有一个线程退出。
我曾尝试使用工具用户模式进程转储程序,但它无法在此进程正在处理的Windows版本上运行。 我曾尝试使用工具进程监视器来检查线程退出事件,但是当我尝试通过一次又一次地启动进程来重现此问题时,进程监视器将抛出异常。
提前致谢。
答案 0 :(得分:0)
最后找到根本原因 - 字符串由多个线程访问,一个线程刚刚退出。字符串不是线程安全的。
Process Monitor帮助在强大的主机上获取线程退出调用堆栈,这使得根本原因变得清晰。
感谢大家的建议。