什么是 __rw::__rw_deallocate?

What is __rw::__rw_deallocate?

我有一个 ARM 应用程序,在其中偶尔会收到数据中止或预取中止崩溃报告

__rw::__rw_deallocate(void*, unsigned int, int)

在堆栈的顶部。这个功能是什么,谁拥有它? Google 出现了与此函数相关的各种链接器和构建错误,但我的问题是运行时崩溃。我在我的应用程序中同时使用了 boost 和 std 库。

看起来像是堆函数(malloc、free 等)的实现细节(__* 是库保留名称)。

它在那里崩溃的事实通常意味着您通过执行

来调用 Undefined Behaviour
  • 一双免费
  • 一个没有单元化的(不确定)指针
  • 你在做这些事情时遇到了竞争条件

等等

是否涉及线程? (检查你的锁定)

如果不是,请检查越界寻址、未初始化的变量访问等

valgrind 这样的工具在这里非常有用。