程序有几万行代码,编译通过了,运行的时候崩溃了,怎么定位错误?面试题。。求解

2025-05-17 12:04:08
推荐回答(3个)
回答1:

呵呵,这个我最在行啦,说实话,调试的过程中,不怕崩掉,就怕什么错误信息都没有。
首先,既然down掉了,那么肯定会有错误信息,这个通常是出在调试环境的console或log文件中,根据错误信息的内容初步判断错误类型,如果是编译后的初次调试,大部分情况下是空指针(空内存)访问错误,即实际为null的内存被使用,当然也可能是其他错误。无论怎样,在这个位置加入断点,即在这行代码不出错,一旦执行该行,程序即崩溃(无法调试的环境下则加入充分的debug信息),再次运行程序,在这一点上监视各个变量,找到导致崩溃的变量值,向上追溯,找到给该变量赋值的逻辑,如果是通过其他变量传递过来的,则逐层向上逆向追踪,通过断点来找到函数的呼出元,当找到赋值操作的根源时,错误的原因也就找到了,接下来就是分析原因,讨论对策,查找影响范围了。。。。
down掉的程序不可怕,可怕的是没有任何错误信息得bug(加上这句可以提高印象分哦O(∩_∩)O~)

回答2:

调试的方式运行,程序出错会停下来,这时就可以发现错误的地方了
从而改正BUG。

回答3:

有assert否?
有log否?
有core dump否?