【办法】应用程序崩溃问题处理办法

2023-05-03 20:32:17   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《【办法】应用程序崩溃问题处理办法》,欢迎阅读!
办法,应用程序,崩溃,处理,问题
文档来源为:网络收集整理.word版本可编辑.欢迎下载支持.

【关键字】办法

应用程序崩溃处理办法

问题描述:基于三汇语音卡的应用程序在运行过程中出现崩溃或者称为异常退出,所崩溃指的是应用程序报错后对应进程突然消失或者对应服务自动停止。

问题分析:一般来说,程序崩溃都是因为内存的非法访问导致。可以通过程序崩溃时产生的dump文件来分析定位问题。

问题处理:基于三汇语音卡的应用程序崩溃可以考虑以下几点:

1. 客户是否可以拿源码在出问题的机器上调试? 2. 是否可以确认在做什么操作时出现应用程序崩溃? 3. 获得应用程序崩溃时的错误信息以及dump文件 4. 获得板卡型号和驱动版本

Windows下如何获得应用程序崩溃时的错误日志以及user.dmp文件?

应用程序崩溃发生后,点击windows左下角开始菜单中的运行栏,输入drwtsn32.exe后回车,看有没有该应用程序的信息,若有,可将故障转储文件user.dmp(运行drwtsn32.exe后有转储文件的路径)获得到进行分析。

若系统没将drwtsn32.exe设为应用程序默认的调试程序,需点击windows左下角开始菜单中的运行栏,输入drwtsn32 i后回车,具体如何设置请看下图: 等程序崩溃发生后,应用程序错误下面的空白框里会显示程序的错误信息把上图日志文件路径下的错误日志以及故障转储路径下的user.dmp获得到。

注意:Dr. Watson 只能捕获到用VC开发的程序崩溃时的dump,其他编程语言开发的应用程序崩溃Dr. Watson捕获不到。

如果用户应用程序不是用VC开发,并且按照上述方法正确设置了Dr. Watson但是应用程序崩溃时没有产生user.dmp文件,那说明崩溃不是发生在语音卡驱动里,而是在用户应用程序里。

如果用户应用程序是用VC开发,并且按照上述方法正确设置了Dr. Watson需要分析应用程序崩溃时产生的user.dmp文件,定位崩溃发生在语音卡驱动里还是在应用程序里。

Dr. Watson获得应用程序崩溃时错误信息的方法,只在windows xp ,windows 2000, windows 2003上适用,其他windows操作系统没有自带Dr. Watson调试工具。 Linux下如何获得core dump文件?

对于linux系统而言,基于三汇语音卡的应用程序崩溃,绝大多数情况下都是因为段错误一般终端上会有提示信息“segment fault”或者段错误此时可以先通过命令


文档来源为:网络收集整理.word版本可编辑.欢迎下载支持.

打开core dump文件产生的开关,应用程序崩溃时系统就会在应用程序的当前目录下产生core dump文件。以下是获得core dump文件的方法:

1. core文件的生产开关和大小限制

使用ulimit c size 命令(size为具体设置的core dump文件大小,单位为kbyte例如ulimit c 1000可以限制产生的core dump文件的大小, ulimit c 0则表示关闭输出core dump。若使用ulimit c ulimited,则表示产生的core dump大小不受限制。一般建议使用ulimit c ulimited

2. 产生的core文件的文件名以及路径

使用ulimit c ulimited 命令后,如果应用程序崩溃,会在应用程序的启动目录下产生一个core.xxxdump文件(xxx表示该程序的进程标号)

另外, 无论是Windows系统还是Linux系统,从,在配置文件ShConfig.ini[SystemConfig]章节下新增了一个配置项CreateDumpWhenCrash=1驱动崩溃时产生dump文件(默认值)Windows下如果驱动崩溃,将在应用程序当前目录产生文件名为Crash-日期时间.dmp文件。VC平台在应用程序或驱动出现非法时都能输出dump文件,其他平台下只有在驱动出现非法时才会输出dump文件,Windows 2000及以下系统不支持此功能;Linux下如果驱动崩溃,将在应用程序当前目录产生文件名为"core.PID"文件,PID应用程序进程号。 如何分析Linux下的core dump文件

因为分析Linux下的core dump文件,需要在产生core dump相同环境(相同的系统内核,相同的驱动程序,相同的应用程序)的机器上进行。所以为了能够尽快定位问题,建议用户在产生core dump的机器上按照顺序执行以下命令: gdb ./app core.PID bt thread info r x/i $eip

thread apply all bt

以上命令中./app 为用户程序的可执行文件名,core.PID为用户应用程序异常时产生 core dump文件。

执行完以上命令后,把控制台上的所有输出信息都拷贝出来,发我方技术支持分析即可。

此文档是由网络收集并进行重新排版整理.word可编辑版本!


本文来源:https://www.wddqxz.cn/fb72ebe07175a417866fb84ae45c3b3566ecdd40.html

相关推荐