程序有上万行代码,编译通过,运行时崩溃。如何定位错误?面试问题。。找到解决办法
呵呵,我最擅长这个了。说实话,我不怕调试时死机,就怕不会有什么报错信息。
首先,既然down掉了,肯定会有错误消息,一般来自于调试环境的控制台或者日志文件。根据错误信息的内容,初步判断错误类型。如果是编译后的第一次调试,大多数情况下是空指针(空内存)访问错误,也就是使用了实际的空内存,当然也可能是其他错误。无论如何,在这个位置加一个断点,就是这行代码没有错误。这一行一旦执行,程序就会崩溃(如果无法调试,补充足够的调试信息)。再次运行程序,监视此时的每个变量,找到导致崩溃的变量值,向上追溯,找到分配变量的逻辑。如果是通过其他变量传递的,一步一步追溯,通过断点找到函数的呼气元素。当找到赋值操作时,。。。
被宕机的程序不可怕,可怕的是没有错误信息弄个bug(加上这句话可以提高印象分O(∩_∩)O~)