如何在Mac上从Java调用的动态库中调试代码

时间:2019-02-19 17:28:37

标签: c++ xcode macos debugging java-native-interface

我们的应用程序由用Java编写的部分和用C ++编写的部分组成。 Java部分是主要应用程序,而C ++部分则被编译成相应平台的动态库,然后通过JNI访问。

在Windows上进行调试非常容易:

  1. 使用调试符号编译动态库。
  2. 在Visual Studio中打开相应的C ++源文件,不需要任何项目。
  3. 启动Java应用程序。
  4. 将Visual Studio调试器附加到相应的javaw进程。
  5. 在先前打开的C ++源文件中设置一个断点,并在应用程序击中该断点后立即开始调试。

在OSX上是否可能有类似的工作流程?

1 个答案:

答案 0 :(得分:0)

Xcode更加注重项目,因此您必须使一个项目能够执行任何操作,并且源文件需要成为该项目的一部分,但是它们不需要内置于任何内容中。因此,只需使用命令行模板创建一个MacOS xcode项目。执行File->Add Files to MyProject并选择包含您的源的文件夹。您可以将它们添加到Project的目标中,也可以不添加-这并不重要,因为您没有使用该项目来构建任何东西。然后在这些源文件中设置断点,运行Java应用程序并执行Debug->Attach to Process by PID or Name并键入您的进程名称。