经常有人问我关于内存断点的问题,刚才看帖又看到一个哥们问起这事。干脆就写一篇简单教程吧。
翻出了一个快排的程序。初始化了一个待排序数组,这时候如果我想看看arr[0]这个内存单元的值是何时开始变化的,那么就可以在这个内存地址直接下数据断点。打开Edit-->Breakpoints菜单,出现Breakpoints窗口,选Data叶面。内存断点需要在调试过程中使用,这时候能直接看到arr的地址是0x12ff58,或者写arr也可以。不过代码量大的话,还是直接下内存地址比较靠谱。如下图:
长度那个地方默认是1,我改成了4,因为int类型是4个字节。注意,这个时候arr[0]=0x26。然后F5运行程序。当arr[0]的值变化时,IDE会给出提示消息框,如下图:
清楚的提示我们起始地址0x12ff58,长度为4的这个内存单元发生了变化。点击确定,再看看数据。
原来的0x26变成了0x17。然后看到代码运行的地方,看到没?就是上面的交换数据的那三行代码。
嗯,大概就是这样子吧。VC6的集成调试环境还是挺不错的。