iOS应用程序在相同的内存地址获得EXC_BAD_ACCESS,但原因不同
iOS application gets EXC_BAD_ACCESS at same memory address but with different causes
我正在构建一个iOS应用程序。它使用了一个C++库,该库与cocos2d游戏(确定许多代理位置的群组模拟库)一起运行。
在我添加了更多的动画和额外的铃声后,应用程序在大约6-30秒后崩溃,错误如下:tiny_malloc_from_free_listtiny_free_list_remove_ptr
问题是,它总是发生在相同的内存地址0x1000。但我可以在两个不同的设备上准确地复制错误,所以坏的不是内存本身。
我并不期待一个完整的答案,但一些关于我应该从哪里开始寻找的建议会很好:)谢谢!
编辑:我完全删除了c++库,但错误仍然存在。我会在接近后更新。
编辑:问题是在Cocos2d v.2显示统计添加和删除指针。谢谢你的帮助!纹理枚举值之一是1<lt;12,并被用作指针。。。我停止使用显示统计数据。:)谢谢大家!
假设回溯没有立即显示问题。。。
听起来这可能是对nil"对象"的尊重,代码试图引用*(p+0x1000)。请注意,0x1000可能是VM页面大小。
在这种情况下,我打开僵尸并保护malloc,看看我是否能在问题发生时抓住它。
如果有这样的地址,我会怀疑某个地方有int到指针的转换。那是什么,4096?我可能会在库中搜索一个具有该值的常数(可能是通过位移位1<<12来实现的),看看我是否能找到以奇怪的方式使用该常数的代码。
相关文章:
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- 为什么调试器引发"read access violation. this was nullptr"异常?
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 使用来自 Excel VBA 的 C++ dll 时"Bad DLL calling convention" - 如何解决?
- Simulink "Access Violation"写入 C++ lambda 函数捕获列表中的 PWork 变量
- Qt QXmlStreamReader Access Violation
- "Access is Denied" U盘上的创建文件()
- 指向 std::unrodered_map 中元素的指针返回'Read access violation'
- C++17 编解码器在将标准::字符串转换为标准::字符串时抛出"bad conversion"
- 例外:'Access violation reading location'
- 向量数组"Cannot access memory at address"
- Windeployqt不会运行,"Access is denied."
- 对于代理容器上的迭代器来说,"least bad implementation"可能是什么?
- 我在发布模式下运行时收到"Access violation reading location"错误 - C++
- Access C++ Enum from Swift
- Java 本机访问代码错误:"Invalid memory access"
- 获取错误:在抛出"std::bad::alloc"的实例后终止调用 what(): std::bad_alloc
- 如何获得私人会员的"read access"?
- 将数据添加到 CArray 会产生错误"cannot access private member declared in class 'CObject'"
- Bad Linux Memory Map File Performance with Random Access C++ & Python