我正在开发第三方C++应用程序。它在退出过程中崩溃。如果看一下堆栈,我得到的只是__static_initialization_and_destruction_0函数和很多问号。项目很大,不幸的是它有很多静态对象。有什么办法找出哪个崩溃了吗?
最佳答案
虽然,这可能不是您要查找的建议,但请避免使用静态对象。这样做的原因是,没有办法保证构造和破坏的顺序。
我在这里猜测,但是一个静态对象完全有可能依赖于另一个静态对象。由于无法保证销毁顺序,因此您将陷入困境。
最好将静态对象更改为在主函数开始时创建的指针,然后在主函数结束时销毁的指针。然后,您可以选择适当订购它们。