typeinfo导致分段错误

时间:2011-03-18 14:42:49

标签: c++ segmentation-fault fault typeinfo

我有一个分段错误。使用gdb调试,堆栈中的第一帧是

在MyClass()

的typeinfo中

有人知道关于typeinfo的事吗?

3 个答案:

答案 0 :(得分:3)

有同样的问题;发布解决方案,因为它可能会帮助其他人:

对项目进行干净的重建解决了这个问题 - 一些目标文件使用了不同版本的头文件,导致了不一致。实际的错误在我的构建脚本中,因为没有正确表达依赖关系。

答案 1 :(得分:2)

我怀疑在这种情况下,作为框架顶部的typeinfo完全是一个红色的鲱鱼。您需要上调调用堆栈,直到找到自己的代码并在此处查看更详细的信息。几乎可以肯定你是尝试从空指针获取typeinfo,但它有点可能它只是一个垃圾指针值(这不太明显)。

答案 2 :(得分:1)

RTTI仅适用于至少具有虚拟方法的类,因此请确保您拥有虚拟方法。

另外,请记住,您可以间接使用RTTI(dynamic_cast,typeinfo,typeid)(catch是或者可以用dynamic_cast实现)。