2009-10-06 125 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是通常在應用程序崩潰後寫入的文件。開發人員可以在崩潰時分析應用程序的狀態。