取代标准 C++ 分配器?

2024-01-01

我想用更强大的分配器替换标准分配器(C++ 标准只需要对 vector::resize 进行溢出检查)。许多库提供的各种 C++ 分配器在提供负面的自测试时都会一败涂地。

我可以使用更强大的分配器。 ESAPI 的分配器不仅检查溢出,还具有调试工具来帮助发现错误。http://code.google.com/p/owasp-esapi-cplusplus/source/browse/trunk/esapi/util/zAllocator.h http://code.google.com/p/owasp-esapi-cplusplus/source/browse/trunk/esapi/util/zAllocator.h.

是否有一种标准方法可以轻松替换程序中使用的 C++ 分配器?我还想确保它在库代码中被替换,我可能无法访问源代码。


Unlike malloc这是一个库函数,可以被具有相同签名的另一个函数替换,std::allocator是一个类模板,模板代码根据需要实例化并内联到使用它的代码中。一些标准库代码已经被编译到库的目标文件中,并且将包含实例化的std::allocator无法替换的代码。所以唯一的方法是标准库提供一些非标准的方法来替换它std::allocator。幸运的是,GCC 的 libstdc++ 允许您做到这一点,允许您选择用于的实现std::allocator当 GCC 配置和构建时,有一些不同的选择 http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext

将 ESAPI 分配器作为选项之一添加到 GCC 源中,然后重建 GCC 以使用该分配器作为std::allocator提供其实施。您可能需要稍微调整 ESAPI 分配器代码,并且可能需要更改 libstdc++configure脚本让你可以说--enable-libstdcxx-allocator=esapi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

取代标准 C++ 分配器? 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr

随机推荐

  • Android中如何获取对应的文件图标?

    每个文件类型都与其特定的相关联icon 现在如果我选择一些文件名 xxx那么我如何能够选择与关联的图标 xxx而不是未知文件的默认图标 原始问题 我怎样才能得到 txt or doc or png文件图标 比如我现在选择filename p
  • C# 反序列化 json

    我有如下 json data name 123 pwd 123 name 456 pwd 456 name 789 pwd 789 duration 5309 query myquery timeout 300 Using http jso
  • 如何配置Tomcat使用1个以上的CPU?

    我们有一个新的客户端 目前我们正在对具有 100 个并发 http 线程的生产类服务器进行压力测试 使用 Jmeter 问题是 即使我们有 2 个 Xeon 处理器 每个 CPU 有 4 个核心 总 共 8 个核心 我只能看到 tomcat
  • 多个输出路径(Java - Hadoop - MapReduce)

    我做了两项 MapReduce 作业 我希望第二项作业能够将结果写入两个不同目录中的两个不同文件中 我想要某种类似于 FileInputFormat addInputPath multiple input path 的东西 但对于输出 我对
  • 回购同步重复路径问题

    我已经为oneplus构建cyanogenmod有一段时间了 我已经用boeffla内核替换了库存内核 但是截至今天我遇到了一个问题 之前能够与新内核重新同步 一切都说现在当我进行回购同步时 致命 home noahvt BuildServ
  • 在android中创建缩放位图时保持图像质量

    我有一张尺寸为 960x800 的图像 我试图让它填满屏幕 我目前的做法是加载完整的 960x800 位图并使用源和目标Rect对象 到目前为止 我的目标矩形为 480x320 屏幕尺寸 源矩形为 960x800 background Bi
  • 如何使用“...”(变量)参数? [复制]

    这个问题在这里已经有答案了 可能的重复 C 和 C 中的可变参数函数是什么 https stackoverflow com questions 3870128 what are variadic functions in accordanc
  • 放大一条曲线,使其可以沿着 R 图中的另一条曲线显示

    我有一个 R 图 我想在其中展示IF the red curve 现在位于图的底部 未正确显示 乘以一个常数 它可以match the blue curve目前显示 我想知道我怎样才能最好scale up the 红 曲线以便它准确地mat
  • Apache Derby - java.sql.SQLException:无法启动数据库

    首先 这是我第一次使用 Apache Derby 我正在使用 netbeans 愿意使用嵌入式 apache derby 并且我按照以下教程配置和安装数据库 然后 我使用项目属性将 derby jar 文件附加到我的项目中 http net
  • Angular2 - ngOnDestroy() 未在类似路线上调用

    我有一个 Angular2 应用程序 其路线如下 path component ContentComponent children path folder folderId resolve currentFolder CurrentFold
  • 使用 CefSharp v65 加载本地 html/css/js 文件

    我正在尝试在 WinForms 中使用 CefSharp v65 加载本地 html css js 文件 我找到了与此相关的其他堆栈溢出帖子 但他们都没有使用新的内置版本FolderSchemeHandlerFactory 而不是实现他们自
  • 如果第二个输入字段已填充,则禁用输入字段

    完全是个新手 我只想知道当第二个输入字段被填充时如何动态禁用输入字段 eg td td
  • 将列中的所有行更新为新值

    抱歉 我确信这个问题已经被问过很多次了 但我已经四处寻找一个很好的例子 但一直没能找到 我想运行一种方法将值插入到表中所有行的特定列中 为了让您了解我正在使用的方法和查询 这是我的学生表的工作更新方法 public void updateS
  • 拉丁字符检查

    那里有一些类似的问题 但没有一个是完全相同的或者有适合我的答案 我需要一个javascript函数来验证文本字段是否包含所有有效的拉丁字符 因此没有cryllic或中文 只有拉丁文 具体来说 基本拉丁语 不包括 C0 控制字符 Latin
  • 为 python 2.7 安装 MySQLdb 返回错误

    pip install MySQL python 1 2 4b4 tar gz 在 Python 2 7 ubuntu 18 04 上返回此错误 你能帮助我吗 pip install MySQL python 1 2 5 zip Proce
  • 为什么当 repo 变大时 git 操作会变慢

    我知道当 repo 变大时 git 会变慢 但为什么 由于 git 将文件存储为单独的目录和文件 git 我不知道为什么操作变慢 让我们来看看commit手术 最近 我从 master 克隆了 webkit 存储库和分支 然后我提交了一个2
  • 在 NodeJS 中使用 JSONStream 时出现内存不足问题

    我正在尝试使用 NodeJS 中的 JSONStream 库将 json 94mb 大 从 http 请求流式传输到本地文件 但是 该应用程序崩溃了out of memory错误 即使使用 256mb 内存标志调用代码 node max o
  • 扩展 lib.d.ts 中定义的变量的类型定义

    我有一些使用 mootools 的遗留代码需要转换 Mootools 引入了一个新的带有两个参数的 Element 构造函数 我没有找到 mootools 的任何类型定义文件 所以我必须自己编写 Typescript 标准库 lib d t
  • 清单合并失败:需要为 显式指定 android:exported

    合并错误 错误 android exported 需要为元素显式指定 面向 Android 12 及更高版本的应用需要指定 显式值android exported当对应的组件 定义了一个意图过滤器 看https developer andr
  • 取代标准 C++ 分配器?

    我想用更强大的分配器替换标准分配器 C 标准只需要对 vector resize 进行溢出检查 许多库提供的各种 C 分配器在提供负面的自测试时都会一败涂地 我可以使用更强大的分配器 ESAPI 的分配器不仅检查溢出 还具有调试工具来帮助发