我正在开发一个 Java 应用程序,使用 DLL 的 JNI 接口(interface),用 C 编写。
当我在 Eclipse 中启动应用程序并尝试在 C 代码中(在 Visiual Studio 2013 中)执行“附加到进程”时,这似乎不起作用:我的 Visual Studio 断点提到:
The breakpoint will not currently be hit. No symbols have been loaded for this document.
我已经验证了编译/运行时目录,一切似乎都正常。
我不确定的一件事是我需要使用的代码类型:
如前所述,我的应用程序是 Java 应用程序,因此在 Visual Studio 中,项目属性、命令参数等于
"$(JAVA_HOME)\bin\java.exe"
命令参数中提到了我的 Java 应用程序的名称。
我不确定,但我相信我的问题是由于 Java.exe 程序和我需要使用的代码类型不匹配造成的。其中有六个(在窗口“调试、附加到进程、选择(选择代码类型)”中):
- GPU - 软件模拟器
- 托管(v3.5、v3.0、v2.0)
- 托管(v4.5、v4.0)
- 母语
- 脚本
- 托管兼容模式
出于消除目的,有谁知道我如何确定上述代码类型中的哪些对应于 Java 程序/应用程序? (我第一次尝试让 Visual Studio 自动确定代码类型,但失败了)
最佳答案
GPU - Software Emulator
Script
我不确定这些在 Visual Studio 上下文中的确切含义,但它们绝对不是您要寻找的内容。
- Managed (v3.5, v3.0, v2.0)
- Managed (v4.5, v4.0)
- Managed Compatibility Mode
“托管”是 Microsoft 对 .NET 的一种别致说法,但您并未使用它。
- Native
native 代码是以传统方式编译的机器代码。这就是你想要的。
关于java - Visual Studio 2013 Express Edition,附加到进程(Java JNI 应用程序)似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33076187/