我开发了一款目前可以在iphone / ipad / ipod touch上运行的游戏,没有任何问题。
最近我需要在模拟器上运行它,并且我发现在启动某个级别时它在特定的加载功能上崩溃了,我去了user / Library / Logs / DiagnosticReports中的崩溃报告,发现abort()正在被执行在游戏对象之一的构造函数被调用后调用:
0 libSystem.B.dylib 0x93100ef6 __kill + 10
1 libSystem.B.dylib 0x93100ee8 kill$UNIX2003 + 32
2 libSystem.B.dylib 0x9319362d raise + 26
3 libSystem.B.dylib 0x931a9679 __abort + 124
4 libSystem.B.dylib 0x9318c3bc release_file_streams_for_task + 0
5 gamehere 0x0004d650 Piso::Piso(W3d*, int, int) + 758 (Piso.cpp:45)
所以我转到“ Piso.cpp”,然后看到第45行只是该对象的构造函数的结尾括号。
我真的不知道导致崩溃的原因是什么,在该构造函数中我加载了纹理,为该类初始化了一些计数器,数组和其他内容,再次,这些在设备上运行时都引起了问题...
我真的很感谢在哪里寻找一些想法来解决此问题。
谢谢!。
最佳答案
右括号表示某些局部变量的析构函数。例如:
struct Test {
~Test() {
throw "error";
}
}
int main() {
int b;
{
Test a;
}; //On your stack trace, here it will be pointed as the error line.
b = 1;
};