有谁用过NuMega BoundsChecker

czp_opensource 2008-03-28 02:18:05
能说说NuMega BoundsChecker的工作原理么?
...全文
493 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
czp_opensource 2008-03-31
  • 打赏
  • 举报
回复
我在发贴之前写了一个检测内存泄露的头文件,代码可以下面的地址上下到的.

http://www.mydlit.com/bbs/viewthread.php?tid=324

但在Windows上, 看到人家, 头文件都不用, 就感觉晕晕的, 在linux上也可以做上面的实现么?
czp_opensource 2008-03-31
  • 打赏
  • 举报
回复
觉得canybox说的很有道理哦~ 不过, 让我去实现, 还是不会. 还得研究一下, 先不结, 看看还有高人没?
canybox 2008-03-29
  • 打赏
  • 举报
回复
BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进 程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后 再执行原来的代码。BoundsChecker在做这些动作的时,无须修改被调试程序的源代码或工程配置文件,这使得使用它非常的简便、直接。


http://www.cnblogs.com/taoxu0903/archive/2007/10/27/939261.html
Supper_Jerry 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 michney 的回复:]
用过但是感觉,这个东西不准
有的测不出来
[/Quote]
而且还很容易误报。
michney 2008-03-29
  • 打赏
  • 举报
回复
原理应该就是监视malloc,free
监视内存分配情况,感觉不是很可靠,写程序不能完全依赖它
michney 2008-03-29
  • 打赏
  • 举报
回复
用过但是感觉,这个东西不准
有的测不出来
野男孩 2008-03-29
  • 打赏
  • 举报
回复
boundchecker是集成在开发环境中的,也就是说在编译过程中,或者是预编译时对代码作了修改,增加了内存管理的控制,所以在运行中才能检测出问题来。
Supper_Jerry 2008-03-28
  • 打赏
  • 举报
回复
应当是记录所有new和delete的内存(包括malloc,alloc,realloc等)。
把内存地址记录下来
程序结束的时候扫描所有记录,看是否有内存泄漏。
具体内部采用什么数据结构记录内存那就不得而知了。
ryfdizuo 2008-03-28
  • 打赏
  • 举报
回复
UP
  • 打赏
  • 举报
回复
hook相关的内存分配的函数
hook相关的资源分配释放的api什么的

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧