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

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

呵呵,这个我最在行啦,说实话,调试的过程中,不怕崩掉,就怕什么错误信息都没有。

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

down掉的程序不可怕,可怕的是没有任何错误信息得bug(加上这句可以提高印象分哦O(∩_∩)O~)

在现场设置程序崩溃自动转储。

在windows

注册表如下项:

//HKEY_LOCAL_MACHINE/Software/Microsoft/Windows

NT/CurrentVersion/AeDebug

中提供了调试器的相关设置。

Debugger

设置具体的调试器和启动参数

Auto

是否设置在发送错误前启动调试器

以windbg为例

Debugger

=

"Path/WinDbgexe"

-p

%ld

–c

"dump

/ma

/u

C:/CrashDumpdmp"

-e

%ld

–g

在程序崩溃的时候,将启动windbg,并将内存转储到c:/crashdumpdmp文件中。

开发人员拿到dmp文件后,就可以定位问题了。

以上就是关于程序有几万行代码,编译通过了,运行的时候崩溃了,怎么定位错误面试题。。求解全部的内容,包括:程序有几万行代码,编译通过了,运行的时候崩溃了,怎么定位错误面试题。。求解、windows系统如何设置应用程序崩溃自动内存转储、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10039176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存