2013-10-21 56 views
5

我在RHEL 6.4服務器上運行JAVA程序。程序終止異常顯示messaeg「分段故障(核心轉儲)」。但是我沒有找到任何文件指出在運行程序的當前用戶目錄中終止的原因。在Linux上運行Java程序時出現分段錯誤

如何在這種情況下進行調試以找到錯誤?

DOUBT

按我相互理解段故障時程序試圖外部的方案的範圍內,以訪問存儲器地址時發生。我期望在C或C++程序中看到這樣的錯誤,但是在Java中因爲沒有指針,所以如何實現分段錯誤。

+0

你有沒有試過看'gdb'中的核心轉儲? – yamafontes

+0

你使用的是什麼版本和構建的Java?它可以在JVM中嗎?你使用任何本地庫? –

+0

segfault表示某些本地代碼(您使用本機庫)還是JVM本身的錯誤。一些JVM將關於該問題的日誌文件放在主目錄中。 – Henry

回答

2

分段故障如何實現。

這有幾個可能的原因。 JVM本身或包中可能存在一個錯誤(其中一些用C或C++編寫)。這也可能是由於配置不當而導致配置錯誤的原因。

從經驗來看,JVM的bug是最不可能的(儘管我見過一些)。

如果您在崩潰點捕獲堆棧跟蹤,這可能會爲您提供有關崩潰發生的確切位置的一些線索。

+1

我沒有收到任何堆棧跟蹤,我只看到了發生分段錯誤的消息。 – juan

+1

但你得到一個核心轉儲文件,並有工具可以讀取 – Zarathustra

相關問題