TCMalloc:在Win-64上删除和删除[]运算符修补程序

时间:2013-05-30 11:44:13

标签: heap win64 tcmalloc

TCMalloc是一个很棒的堆管理器,用于多线程使用(在我的例子中是OpenMP)。 使用tcmalloc获取所有内容并运行Linux,Windows,32位非常容易,但是现在我完全陷入了win-64:

  • 我使用动态链接的x64 libtcmalloc-minimal使用VS2012构建
  • 一切都很好,节目开始很好,{new,malloc,realloc,free}工作得很好
  • 第一次调用delete或delete []时,程序崩溃,因为std库中的delete操作符(在dbgdel.cpp中)在以下行调用:

    _ASSERTE(_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse));

  • 我尝试使用Release版本的所有内容(因为dbgdel.cpp运算符只在定义了_DEBUG时使用)没有运气

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我想分享我找到的解决方案(我的错误):

在项目的一个链接库中,我忘记了Release版本中的“_DEBUG”预处理器宏。删除它解决了这个问题。