应用程序一运行就崩溃,且每次崩溃的位置都不一样
应用程序一运行就崩溃,且每次崩溃的位置都不一样
一贱书生 发表于12个月前
应用程序一运行就崩溃,且每次崩溃的位置都不一样
  • 发表于 12个月前
  • 阅读 25
  • 收藏 0
  • 点赞 0
  • 评论 0

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

 

解答

随机崩溃的常见原因:

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

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

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

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

 

解决:

1)关闭系统中其他所有应用,仔细追踪资源使用。如果该程序有些部分可以关掉,就设法关掉。

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

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

共有 人打赏支持
粉丝 14
博文 722
码字总数 600072
×
一贱书生
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: