标签: c++
我有一个继承类类型的对象(比如它的类型B,它继承自A),我怀疑它的vptr由于系统中某处的缓冲区溢出而被破坏。我认为情况就是这样,因为在运行时尝试访问该对象的公共方法时,我有时会遇到“访问冲突”。
一个。有任何想法吗? B.我得到一个指向对象A的指针作为我尝试访问它的方法的参数。如果vptr确实已损坏,我可以通过尝试在A指针上执行dynamic_cast来将其用作B来验证这一点,并希望它在vptr出现问题时失败吗?
谢谢
答案 0 :(得分:1)
广告A:尝试使用duma或electric-fence库来调试缓冲区溢出。
广告B:是的,如果vptr已损坏,dynamic_cast将失败。