核心转储&分段故障

时间:2009-10-06 10:36:06

标签: unix

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

Sachin Chourasiya

2 个答案:

答案 0 :(得分:4)

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

分段错误是进程崩溃的表现之一。通常它会在程序试图访问不应该访问的内存时出现。

有分段错误的原因。这是一个非详尽的清单:

  • 通过未初始化的指针访问数据
  • 访问已免费的malloc内存
  • 访问超出数组大小的数组元素
  • ...

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

答案 1 :(得分:3)

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

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