2009-02-09 92 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