重写做大流。。。。
虽然以前做过了,,,但是又复习了一遍。
在做的过程中,Flow数组意外的改变了(程序中没有改变它),弄的我很郁闷。
后来想到了一种调试方法。
由于出错的地方是在n次循环之后,要想单步调试会死人的。
VC又没有提供内存数据下断点的功能。(OD就好很多)
所以我们只能手动在程序中添加__asm int 3来作为断点。
比如出错地方是在i循环100次的时候,那么我们就这样写
那么当i循环到99的时候,程序就会自动断下来,然后我们就可以单步调试了!!!
调试后发现是由于stack数组忘记重写初始化导致溢出从而影响到Flow数组。
典型的缓冲区溢出了。。。。ODay安全没白学:)
这个方法真是妙!!!学内核调试的时候学到的,,真有用!!!
还有一个就是快速找出死循环的位置!
首先VC调试运行程序,发现程序进入死循环,点击调试菜单中的Break按钮,程序就会在循环处停下来!
这样就轻易找出死循环的位置!
下面贴出搓搓的最大流代码!
头文件自己写吧,哈哈。