3

我用 Java 编写了一个软件,它使用硬件供应商提供的 DLL 与 USB 硬件进行通信。我使用Java Native Access库将包装器写入本机代码。有时当我运行它时,仅在与本机代码相关的函数上,JVM 崩溃,我找不到导致错误的原因,因为它发生在本机代码中,我没有源代码 (MSVCRT71.DLL)。

我大部分时间都是 Linux 开发人员,所以我不习惯这种情况。我可以做些什么来将调试器从外部(例如,Visual C++)附加到 JVM 进程并从中获得一些有意义的东西(即,不是汇编指令)?

4

1 回答 1

2

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

安装具有 crt 源的 Visual Studio 7.1。转到调试-> 进程,找到您正在运行的 java 实例,然后单击“附加”。

如果你无法掌握 VS7,试试这个

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

确保您获得该版本 crt 的符号

于 2009-02-09T20:26:23.153 回答