gpt4 book ai didi

c++ - glibc 的 '-lmcheck' 选项和多线程

转载 作者:可可西里 更新时间:2023-11-01 18:28:55 25 4
gpt4 key购买 nike

我们一直在努力寻找多线程 C++ 应用程序中的一些堆损坏问题。作为一种技术,我们尝试将 -lmcheck 添加到应用程序的库行。这会导致应用程序在相对较短的时间内因明显的堆损坏而崩溃。

我们的应用确实同时使用了 malloc/free 和 new/delete(视情况而定)。

我们的一个团队想知道 -lmcheck 实际上是否是线程安全的,并在所有 malloc/free 调用周围放置了一个互斥体。崩溃消失了。

有谁知道 -lmcheck 是否应该支持多线程?我想知道我们是否只是误解了我们正在尝试使用的工具,从而导致我们自己不必要的担心。

最佳答案

不,mcheck 不是线程安全的,不应该与多线程应用程序一起使用。这样做会引入额外的问题,因为线程之间没有同步。这是几个月前 Ulrich Drepper(glibc 维护者)对这个主题的回应:

mcheck does not work for multi-threaded code. It cannot possibly do. There is no way to fix this with the technology underlying mcheck.

关于c++ - glibc 的 '-lmcheck' 选项和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/314931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com