关于memory over write

li1jie 2010-07-06 04:09:51
在brew中,每次malloc 的时候,我在代码中检查内存尾部4个字节有没有被写过,用于检查是否内存被写过总是会遇到4个字节中的第二个字节被写了。有人遇到过类似这样内存被重写的问题吗?
...全文
1804 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
instantboy 2010-07-09
  • 打赏
  • 举报
回复
Visual studio有这样的断点功能:监视一块内存,比如0x12345678开始的4个字节,当这块内存被改写的时候,就终端程序的执行,你先获得一个你发现会被无故清零的内存块的地址,然后在这个地址上下断点,运行,你就能找到谁改了这块程序。
hhygcy 2010-07-09
  • 打赏
  • 举报
回复
有没有可能你自己内存写过界了
比如数组越界了 导致了你现在的问题
li1jie 2010-07-09
  • 打赏
  • 举报
回复
我没有说得很清楚。我的代码中全部我自己定义malloc和free函数,其中调用MALLOC和FREE.每次我会多分配4个字节的内存,并给这4个字节写上0Xadbedfba。在malloc的时候会将节点加入到链表中。每一次malloc我会检查链表中所有节点特殊的4个字节有没有变化。当然相应的free我会把节点从链表中移除。现在我发现有的时候4个字节中的第2个字节会被置为0。使用的是Brew 3.15. 有什么好的办法可以调试?另外,malloc很多,被写的节点并不都一样。操作步骤一样的。
shore1111 2010-07-07
  • 打赏
  • 举报
回复
malloc的时候被重写?没遇到过
如果被重写那就重置

2,853

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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