在我通过Gosu和Chingu使用OpenGL的小型Ruby项目中,我现在看到我的测试中出现了一些错误:
2011-09-30 23:31:01.789 ruby [832:903] * 尝试弹出未知的自动释放池(0x12c55a00)
更新:我现在也看到其中一些表格,肯定表明有泄漏:
2011-10-01 03:50:00.281 ruby [3212:903] * __NSAutoreleaseNoPool():类NSCFNumber的对象0x461aa0自动释放,没有池到位 - 只是泄漏
2011-10-01 03:50:00.282 ruby [3212:903] * __NSAutoreleaseNoPool():NSConcreteValue类的对象0x461ae0自动释放,没有池到位 - 只是泄漏
2011-10-01 03:50:00.283 ruby [3212:903] * __NSAutoreleaseNoPool():类NSCFNumber的对象0x10ce230自动释放,没有池到位 - 只是泄漏
2011-10-01 03:50:00.285 ruby [3212:903] * __NSAutoreleaseNoPool():NSConcreteValue类的对象0x42abb0自动释放,没有池到位 - 只是泄漏
2011-10-01 03:50:00.286 ruby [3212:903] * __NSAutoreleaseNoPool():类NSCFDictionary的对象0xa031570自动释放,没有池到位 - 只是泄漏
对于可能的原因可能有什么想法?这对我来说有些神秘的信息 - 或者至少它没有为我提供足够的上下文来立即诊断。它似乎没有导致任何测试失败或任何事情,但我确定我正在泄漏内存 - 可能是因为没有正确关闭资源,我猜,但我不确定如何去跟踪这个问题。 ruby-debug可以帮我弄清楚这里发生了什么吗?我在调查中的下一步应该是什么?
答案 0 :(得分:1)
This looks related。如果您在应用程序中使用显式线程,请检查是否可以注册他们在那里提到的清理小部件。如果没有,请尝试清除gem依赖项下的C ++,看看你是否不能在那里进行grep。