【问题标题】:How to debug code in dynamic libraries called from Java on Mac如何在 Mac 上调试从 Java 调用的动态库中的代码
【发布时间】:2019-07-13 06:54:49
【问题描述】:

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

在 Windows 上调试既好又简单:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多