zoukankan      html  css  js  c++  java
  • [CareerCup] 12.2 Find the Reason of Crash 找到程序崩溃的原因

    12.2 You are given the source to an application which crashes when it is run. After running it ten times in a debugger, you find it never crashes in the same place. The application is single threaded, and uses only the C standard library. What programming errors could be causing this crash? How would you test each one?

    这道题说有个应用程序运行的时候崩溃了,在调试运行了十次后,发现在同一个地方不崩溃了。这个应用是单线程的,只用了C语言的标准库,问什么程序原因会导致这个崩溃,怎么样检测每一个原因。根据书上的描述,我们先来看一个会导致程序崩溃的通常的原因:

    1. 随机变量。程序有时候会用一些随机数字或变量,每次运行时值都不同。

    2. 未初始化的变量。程序有未初始化的变量,在有些程序语言中,这可能会赋值为任意值。

    3. 内存泄露。程序有时候会用尽内存,也包括堆和栈的溢出。

    4. 外部依赖:程序有时候会依赖其他的应用,机器或资源。如果有很多的外部依赖,很有可能程序会在某一点崩溃掉。

    既然程序不在同一个地方崩溃,那么有可能是和某一个部件或场景相关联。例如,可能程序在打开后,什么都不动的情况下是好的,但是当读入了一个文件,或者有了其他的操作时,崩溃了。那么我们就最好用排除法来找原因,关掉所有其他的应用,仔细追踪各种资源。如果有部分程序可以禁用,那么就禁用掉,然后在不同的机子上跑程序看是否会遇到同样的问题。

    另外我们也可以借助一些专业的工具来帮我们找错,比如对于问题2,未初始化的变量,就有专门的工具来替我们找到这些变量。

  • 相关阅读:
    使用jquey的css()方法改变样式,
    js 小总结
    .net mvc项目 ajax
    推荐一个优秀的前端框架——Bootstrap
    关于页面优化的方法收集(不断更新)
    软件开发中没有所谓正确的方法(转)
    PHP框架CI(codeigniter)的使用笔记
    前端知识结构图(转)
    PHP生成缩略图的一个方法类(转)
    apache设置映射文件夹的配置方法
  • 原文地址:https://www.cnblogs.com/grandyang/p/4906561.html
Copyright © 2011-2022 走看看