2009-10-06 115 views
2

我想知道分段错误和核心转储之间的确切区别。我同意这些依赖于操作系统,当然,这是由于内存管理不善造成的。但请提出一些通用的方法,以防止这些方法需要遵循?核心转储和分段错误

Sachin Chourasiya

+0

你有没有使用Google? – 2009-10-06 10:41:07

+0

我只想讨论一般预防方法。 – 2009-10-06 10:52:58

回答

4

核心文件是崩溃过程的内存映像。使用调试器,您可以找出崩溃的可能原因。如果您不知道如何处理核心文件(rm core除外),则可以请求不要使用limit coredumpsize 0生成它们。

分段错误是进程崩溃的一种表现形式。通常当程序试图访问它不应该访问的内存时就会出现这种情况。

存在细分故障的麻烦原因。这里是一个非穷举列表:

  • 通过未初始化的指针访问数据
  • 访问哪些已free'd超过数组大小
  • 访问数组元素malloc分配存储器
  • ...

存在用于检测此类内存不良访问的工具。 purifylint就是这些例子。

3

A segmentation fault是无效内存访问的结果,并导致通常会导致应用程序终止的SIGINT信号。

A core dump是通常在应用程序崩溃后写入的文件。开发人员可以在崩溃时分析应用程序的状态。