【发布时间】:2015-11-11 14:49:46
【问题描述】:
我正在将在 Linux 上开发的库 (https://github.com/uzh-rpg/rpg_svo) 移植到 iOS。目标设备是 iPhone 6 plus。第一步,我们设法将其移植到 Windows。此外,我们成功地让它在 iPhone 的 xcode 模拟器上运行。但是当尝试在 iPhone 上启动它时,应用程序在几个周期后崩溃并出现以下错误:
malloc: * 对象 0x12ce8c3d8 的错误:已释放对象的校验和不正确 - 对象可能在被释放后被修改。 * 在 malloc_error_break 中设置断点进行调试
更糟糕的是,崩溃是不可重复的。有时是早点崩溃,有时是晚点。由于它在模拟器中运行得很好,我们不能使用像“Guard Malloc”这样的内存管理工具。我们尝试了“Leaks”和“Zombies”乐器,但没有成功。
我们知道 iPhone 使用 ARM_NEON 指令集,而在 Mac Book 上我们使用 SSE2。这会是个问题吗? 此外,该库依赖于 Boost 线程。这可能是多线程问题吗?是什么让它在设备上崩溃但在模拟器中没有?我们是否可能遗漏了一个非常基本的观点?
提前致谢!期待回复:)
【问题讨论】:
-
我使用的是 iOS 9.1 和 Xcode 7.1..
标签: boost