聊一聊调试中断! 就是设置断点, 断下来后,可能是n次中断后,或经过一定条件后再中断, 才是我们所期待的中断.
----------------------------------------
author:hjjdebug
date: 2018年 01月 04日
----------------------------------------
实事求是:
一切从实际出发,实事求是是解决一切问题的活的灵魂.
实事求是这四个字概括的好厉害!
实事1:
1.函数调用:
调用函数呈现树状结构(倒立的树),
被调用函数呈现蘑菇云状结构(树状结构)
实事2:
2.中断分类:
a. 函数入口中断
b. 函数内部中断, 尤其是循环语句内中断.
实事3:
3. 中断的目的
在关键点,关键时刻停止运行.
在关键点,记录它的运行轨迹或状态
这两点,虽外在不同,但实质一样.后者可以合并到前者.
对应着中断的条件及中断后自动执行的命令.
规律:
在如此复杂的语句及调用环境下,如何中断到我们感兴趣的点.
4. 关键时刻的把握.
a. 中断次数记录法
可用于函数入口中断和函数内中断. 对应于调试的第几次调用,跳过多少次数等.
b. 二次中断法
又叫做接力中断法,剪枝中断法. 是用一种时分的方法解决矛盾.
是说欲在a点中断,先在b设中断,b中断后,再在a设中断.
可用于函数入口中断.
好处是可以剪枝,有效中断在关心的位置.理论依据是函数调用呈现蘑菇云方式
先在函数入口中断,再在函数内中断,也是二次中断法,都是为了尽快找到关键点.
可以构成复杂的条件中断,高智商的人们可以在此显身手.
其它话题:
函数内部追踪.
带参宏返回值