debugging std::list -clear期间调试中的崩溃-如何定位崩溃的原因

6jygbczu  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(88)

我有一个包含std::列表的自定义结构。但是,在调试模式下(release正在工作),应用程序在多次调用clear with后会崩溃
0xC 0000005:访问冲突阅读位置0xFFFFFFFFFFFF。
内部库方法void _Orphan_non_end() noexcept { // orphan iterators except end()和变量_Iterator_base12** _Pnextnext = &(*_Pnext)->_Mynextiter;是0xdddddddddddddde5
我无法找到问题所在,也无法创建一个会崩溃的最小工作示例,所以我猜问题出在其他地方(堆损坏?))在程序中。我尝试运行“应用程序验证程序”,但没有运气。如何找到问题的根源?
我正在使用Visual Studio 2022,Windows应用程序,x64模式

jtoj6r0c

jtoj6r0c1#

看来我找到问题了。
该结构继承自未声明为virtual的析构函数的父级。添加virtual到父母的dtor修复了这个问题。

相关问题