我在尝试使用 llvm 让我的发布版本在 Xcode 4.2 中工作时遇到了一个奇怪的问题。我已经关闭了发布方案的所有优化设置,据我所知,发布版本与调试版本的所有设置相匹配。无论如何,在使用物理库 Box2D 中的某些结构时会出现以下问题 - 但我不确定该问题是否与此有关。
b2CircleShape* circleShape = new b2CircleShape();
circleShape->m_p.Set(0,0);
circleShape->m_radius = m_radius;
b2FixtureDef fixture;
fixture.shape = circleShape;
fixture.density = m_density;
m_fixtureDefs.push_back(fixture); // std::vector
b2FixtureDef fix2 = fixture;
b2FixtureDef fix3 = m_fixtureDefs[0] // EXC_BAD_ACCESS
当我删除所有访问 m_fixtures 的实例时,不会出现任何问题。当我在开发方案中运行时,不会发生错误。我真的,真的很困惑,如果有人能指出我正确的方向来寻找错误,我将不胜感激
编辑:
更多有趣的东西
for (vector<b2FixtureDef>::iterator i = m_fixtureDefs.begin() ; i != m_fixtureDefs.end(); ++i)
{
}
这似乎永远循环,让我很困惑。似乎结构 m_fixturesDef 存在某种问题,但我不知道为什么正在发生的任何奇怪的损坏只发生在这个特定的变量中。