问题:有个应用程序一运行就崩溃,现在你拿到了源码。在调试器中运行10次之后,你发现该应用每次崩溃的位置都不一样。这个应用只有
一个县城,并且只调用C标准库函数。究竟是什么样的变成错误导致程序崩溃?该如何逐一测试每种错误?
分析:可能是没有内存了,任意地方都会崩溃。采用二分法,先把断点打在程序代码一半位置处,如果在前半段崩溃,就在前半段中取中间位置继续打断点;
否则,在后半段继续取后半段中间位置,打印断点。不断缩小奔溃范围。
关键:
1 此题目的头脑风暴,给出有条理的建议和处理。
2 可能是:随机变量,未初始化变量,内存泄漏等,通过消除法尝试,关闭其他应用,逐一排查是否其他原因。
运行时工具检查未初始化变量
一个县城,并且只调用C标准库函数。究竟是什么样的变成错误导致程序崩溃?该如何逐一测试每种错误?
分析:可能是没有内存了,任意地方都会崩溃。采用二分法,先把断点打在程序代码一半位置处,如果在前半段崩溃,就在前半段中取中间位置继续打断点;
否则,在后半段继续取后半段中间位置,打印断点。不断缩小奔溃范围。
关键:
1 此题目的头脑风暴,给出有条理的建议和处理。
2 可能是:随机变量,未初始化变量,内存泄漏等,通过消除法尝试,关闭其他应用,逐一排查是否其他原因。
运行时工具检查未初始化变量