我有一个B类,它继承了带有一些虚函数的类A. B类也有一个虚拟函数(foo),似乎没有地址。当我用调试器走时,它指出foo有0x00000000
地址,当我尝试加入时,它将在0x00000005
处因访问冲突而失败。如果我让这个函数不是虚拟的,调试器就会进入并且工作正常,直到我达到std::vector
。在我拨打push_back
时,它将在地址0x000000005
处出现相同的访问冲突,同时在地址0xabababab
处写入一些内容,并且调用堆栈指向插入函数中的互斥锁。C++罕见的运行时错误
注意:我没有使用任何其他线程,每次编译时增量链接器都会崩溃。只有完整的链接器才能成功创建exe。编译器来自Visual Studio 2008专业版,当解压出未使用的源文件和源代码时,就会出现此问题。
不幸的是,我无法恢复到以前的状态,以便发现创建这个的变化。
如何在不恢复整个项目的情况下检测问题的根源?也有人遇到这种错误,也许这可能是同一原因。
给我们一些代码。 –
最可能的原因是您通过空指针调用成员函数。 – sharptooth
我正在使用调试器,但它未能给我任何相关信息。指针不为空,不幸的是我不能给你任何源代码。 – Raxvan