<20>堆的调试方法
为什么调试堆。当堆附加数据被破坏的时候(一般是对堆地址做增量操作导致的越界)程序会崩溃并弹出错误报告框。
- 首先,通过错误弹窗我们可以得到堆的编号以及堆所在位置等信息。
- 此时,我们点击重试按钮,此时代码定位到出问题的地方,可以在堆栈窗口中查看定位到的出问题的模块。
- 通过调用堆栈窗口,我们可以定位到自己写代码相关的函数,或则是代码段。
数据修改断点:监控某地址上的内容变化
- 将问题堆弹窗地址记录下来,堆该数据添加断点,监控是否有修改,当地址数据没修改的时候,就会自动下断点,把程序暂停下来。
- 找到出问题的代码断点后,定位出问题的代码。
- 下断点,清除数据监测断点,重新调试,查看数据改变情况。
PS: VS2013添加数据修改断点,单步F10 调试->新建断点->地址->监控几个字节。堆地址可能会变动,需要关闭随机地址。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战