添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

基本原理:

memcheck实现了一个仿真的CPU,被监控的程序被这个仿真CPU解释执行,从而有机会在所有的内存读写指令发生的时候,检测地址的合法性和读操作的合法性。

一,如何知道那些地址是合法的(内存已分配)?

维护一张合法地址表( Valid-address (A) bits ),当前所有可以合法读写(已分配)的地址在其中有对应的表项。该表通过以下措施维护

全局数据(data, bss section)--在程序启动的时候标记为合法地址

局部变量--监控sp(stack pointer)的变化,动态维护

动态分配的内存--截获 分配/释放 内存的调用 : malloc , calloc , realloc , valloc , memalign , free , new , new[] , delete and delete[]

系统调用--截获mmap映射的地址

其他--可以显示知会memcheck某地字段是合法的

二,如何知道某内存是否已经被赋值?

维护一张合法值表( Valid-value (V) bits ),指示对应的bit是否已经被赋值。因为虚拟CPU可以捕获所有对内存的写指令,所以这张表很容易维护。

-memcheck无法检测global和stack上的内存溢出,因为溢出的地方也在 Valid-address (A) bits中。这是由memcheck 的工作原理决定的。

-慢,20到30倍,被虚拟CPU解释一遍,当然慢

-内存占用高,因为要维护两张表格,而这两张表的维度正比于程序的内存

一、基于CRT的内存泄漏检测 windows 下,C运行时库CRT(C Run-time Library),Standard C++ Library包含CRT。CRT将 malloc 和 free 函数映射到它们的调试版本,即 _malloc_dbg 和 _free_dbg,这两个函数将跟踪内存分配和释放。 原理 :Debug版本的 CRT定义了一套调试版本的内存分配函数(如_malloc_dbg)。当你包含了CRTDBG.h后,如果当前是Debug工程,且定义了_DEBUG宏,这时,malloc函数会被被映
valgrind 研究记录 一. 介绍 可以用来做内存检测工具、性能分析工具,基本 原理 是对目标二进制文件进行动态二进制翻译,翻译得到体系架构无关的中间表示(vex),然后在翻译得到的中间表示中插入自己的监控代码(instrument),最后再把修改过的vex编译成主机机器码执行,可以做到指令级别的监控,目标程序就相当于运行在一个虚拟的cpu上。 二. 整体架构 整个程序有个共用的入口,其它实现特定功能的模块都作为它的一个tool( mem check 、lackey),入口部分主要完成参数解析还有目标程序的加载,t
Mem check mem check 用于检测程序中内存管理存在的问题。它检查所有对内存的读/写操作,并截取所有的malloc/new/free/delete调用。因此 mem check 工具能够探测到以下问题: 1)使用未初始化的内存 2)读/写已经被释放的内存 3)读/写内存越界 4)读/写不恰当的内存栈空间 5)内存泄漏 6)使用malloc/new/new[]和free/delete/delete[]不匹配。 7)src和dst的重叠 –tool= mem check 指定 Valgrind 使用的工具。Valgr
valgrind 支持的工具: mem check addr check cachegrind Massid helgrind  Callgrind 运行时必须指明想用的工具,如果省略工具名,默认运行 mem check 1, mem check 1),使用未初始化的内存 2),读/写已经被释放的内存 3),读/写内存越界 4),读/写不恰当的内存栈空间 5),内存泄露,指向一块内存的指针永远
valgrind --help命令用于获取关于 valgrind 工具的帮助信息。它会显示如何使用 valgrind 以及可以使用的选项和参数的详细说明。根据提供的引用、和,这里没有明确提及 valgrind --help命令的具体内容。因此,无法准确地回答关于 valgrind --help命令的具体信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ valgrind 基本功能介绍、基础使用方法说明](https://blog.csdn.net/qq_16933601/article/details/127834883)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]