应用程序一运行就崩溃,且每次崩溃的位置都不同

有个应用程序一运行就崩溃,如今你拿到了源码。在调试器中运行10次以后,发现该应用每次崩溃的位置都不同。这个应用只有一个线程,而且只调用C标准库函数。到底是什么样的编程错误致使程序崩溃?该如何逐一测试每种错误?编程

 

解答函数

随机崩溃的常见缘由:工具

1)随机变量:某个随机变量或可变份量,程序每次执行时取值不定。包括:用户输入、程序生成的随机数或当前时间等。测试

2)未初始化变量:在某些语言中,该变量可能含有任意值。这个变量取不一样值可能致使代码每次执行路径有所不一样。线程

3)内存泄露:可能存在内存溢出。每次运行时引起问题的可疑进程随机不定,这与当时运行的进程数量有关。另外还包括堆溢出或栈内数据被破坏。调试

4)外部以来:可能依赖别的应用程序、机器或资源。要是存在多处依赖,程序就有可能在任意位置崩溃。进程

 

解决:内存

1)关闭系统中其余全部应用,仔细追踪资源使用。若是该程序有些部分能够关掉,就设法关掉。资源

2)在另一台机器上运行该程序,看看是否重现同一问题。源码

3)借助工具检查特定状况。例如,能够利用运行时工具来检查未初始化变量。

相关文章
相关标签/搜索