2011-10-30 46 views
0

enter image description here (big)这可能意味着什么?手表不一致导致Visual Studio调试器

enter image description here (big)

某处一路上到函数animationWithFrames,我矢量失去了它的项目。

这实际上是一个CCMutableArray这是std :: vector的一个薄包装。

template<class T = CCObject*> 
class CCMutableArray : public CCObject 
{ 
public: 
    typedef std::vector<T>        CCObjectArray; 
    typedef typename CCObjectArray::iterator   CCMutableArrayIterator; 
    typedef typename CCObjectArray::reverse_iterator CCMutableArrayRevIterator; 
public: 
    // ... helper functions ... 
private: 
    std::vector<T> m_array; 
}; 

我不明白的是,当我发送变量到函数,调试器接受它具有可变m_array在这2项。

但在函数内部,变量似乎进入“鬼”形式。

帧包含:

m_array=[ 2 ](0x051d5078 ...)

但扩大,m_array包含

[0]()

什么会导致调试器如此不一致?

顺便说一句,代码看不到这些项目。他们已经在途中消失了。那就是问题所在。

Visual Studio 2010. 2008年工作正常。为了做一些工作,我可能会降级。

+0

你没有在两个屏幕截图之间运行程序吗?即你是否制作了截图,向下移动堆栈并再次截图? – avakar

+0

@avakar:是的,同样的运行(但第二个截图与自身不一致,所以也许第一个不相关,我不知道) –

+0

你可以显示该函数,以及如何分配你传递的对象吗? – Mat

回答

0

事实证明,这是一个完全愚蠢的问题,我明显将2008年的cocos2d-x版本链接到2010年的项目中。

调试器不太喜欢那样。

在2010年重建cocos2d-x使问题消失,一切都很好。

相关问题