2009-02-09 94 views
3

我編寫了一個Java軟件,通過使用硬件供應商提供的DLL與USB硬件進行通信。我使用Java Native Access庫將包裝器寫入本機代碼。有時當我運行它時,只有在本地代碼相關的函數中,JVM崩潰,我無法找到導致錯誤的原因,因爲它發生在本機代碼中,而我沒有源代碼(MSVCRT71.DLL)。在Windows下調試JVM崩潰

我大部分時間都是Linux開發人員,所以我不習慣這種情況。我能做些什麼來將外部調試器(例如Visual C++)附加到JVM進程,並從中獲取有意義的東西(即不是彙編指令)?

回答

2

MSVCRT71.DLL是Visual Studio 7.1中包含的c-runtime庫的DLL。

安裝Visual Studio 7.1,它具有crt源代碼。轉到Debug-> processes,找到你正在運行的java實例,然後點擊「attach」。

如果你不能讓你的手VS7,試試這個

[http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx][1]

確保你得到的符號該版本的CRT

+0

安裝Visual Studio 7.1的工作,謝謝! – jfsantos 2009-02-12 22:33:56