重温最大流经验之巧用int 3下断点调试程序 and 快速定位死循环

重写做大流。。。。

虽然以前做过了,,,但是又复习了一遍。

在做的过程中,Flow数组意外的改变了(程序中没有改变它),弄的我很郁闷。

后来想到了一种调试方法。

由于出错的地方是在n次循环之后,要想单步调试会死人的。

VC又没有提供内存数据下断点的功能。(OD就好很多)

 

所以我们只能手动在程序中添加__asm int 3来作为断点。

比如出错地方是在i循环100次的时候,那么我们就这样写

那么当i循环到99的时候,程序就会自动断下来,然后我们就可以单步调试了!!!

 

调试后发现是由于stack数组忘记重写初始化导致溢出从而影响到Flow数组。

 

典型的缓冲区溢出了。。。。ODay安全没白学:)

 

这个方法真是妙!!!学内核调试的时候学到的,,真有用!!!

 

还有一个就是快速找出死循环的位置!

 

首先VC调试运行程序,发现程序进入死循环,点击调试菜单中的Break按钮,程序就会在循环处停下来!

 

这样就轻易找出死循环的位置!

 

下面贴出搓搓的最大流代码!

 

头文件自己写吧,哈哈。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值