【发布时间】:2015-09-18 08:38:37
【问题描述】:
我们在一个工作区中有一个带有 2 个项目的 iOS 应用程序。 我们有一个奇怪的内存泄漏: 如果我们在第二个项目中使用删除器创建 boost::shared_ptr 并在模拟器上启动应用程序 - 删除器永远不会被调用。 设备上的相同代码可以正常工作。 从主项目调用的相同代码 - 在模拟器上正常工作。
有谁知道如何处理这个问题?我会很感激任何想法。
项目 v1.55 中的 PS boost 版本,对于 boost 构建,请使用 https://github.com/mgrebenets/boost-xcode5-iosx 的修改版本
PPS 如果它能更好地解释这种情况:我们已经用许多代码多次检查过这种情况。最终测试调用 boost::shared_ptr sp(new int[10], []( int *p ) { printf("Deleted\n"); delete[] p; } );来自项目的不同部分。问题开始中描述的结果行为。
【问题讨论】:
-
您甚至没有显示相关代码。见sscce.org
-
我不知道这里有什么相关的代码。测试调用 boost::shared_ptr
sp( new int[10], []( int *p ) { printf("Deleted\n"); delete[] p; } );按照问题中的描述工作。 -
您的 SSCCE。请参阅 Nobody writes testcases anymore 和 Solve your problem by almost asking a question on StackOverflow。底线:我们不是通灵者。您列出的唯一内容可能是完整的red herrings。
-
我真的不知道为什么我应该在由于构建而有不同行为的情况下发布代码,但我已经更新了问题
标签: ios boost memory-leaks ios-simulator