c++ - 什么是 __rw::__rw_deallocate?

标签 c++ boost arm

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

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

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

最佳答案

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

它在那里崩溃的事实通常意味着你调用了 Undefined Behaviour通过做

  • 一次免费
  • 一个未初始化(终止)的指针
  • 你有做这些事情的竞争条件

等等

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

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

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

关于c++ - 什么是 __rw::__rw_deallocate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385430/

相关文章:

c++ - 使用 boost::log 输出用户定义的结构

gcc - ARM-GCC 的 ISR 语法

linux - Linux arm64 如何在 AArch32 和 AArch64 之间切换

c++ - GCC C++ (ARM) 和指向结构字段的常量指针

c++ - C++ 的 Hello World 错误

c++ - 将数据从工作线程发送到 Qt 中的 gui 线程

C++ 聊天机器人基于排名的回答?

c++ - shell 扩展 : DragQueryFile returns at most 16 (in Windows 7)

c++ - boost::hana 前向声明 header 的用例是什么?

boost - 使用 boost::asio 制作异步 udp 客户端