【问题标题】:How to Use Eclipse to Debug JNI code (Java & C/C++)如何使用 Eclipse 调试 JNI 代码(Java & C/C++)
【发布时间】:2011-02-15 07:34:39
【问题描述】:

虽然我可以使用用于 Java 代码的 Eclipse JDT 调试器和用于 C 代码的 GDB 来调试我的应用程序,但我更愿意使用一个工具来进行所有调试。我发现了几个在 Eclipse 中启用“混合模式”调试的项目,包括对 Java 和本机代码之间单步执行的支持。

不幸的是,其中一个声称具有预发布质量,而另一个目前未维护。 是否有任何插件可以可靠地为 Eclipse 带来混合模式调试功能,或者我应该继续使用两个单独的调试器吗?

【问题讨论】:

  • 在获得一些支持之前,您可以构建一个 linux 可执行文件并使用 GDB 在 linux PC 上对其进行测试。不是一个好主意,但它可以解决问题。 :)

标签: java eclipse debugging java-native-interface android-ndk


【解决方案1】:

ARM 本身似乎有一个工具包:http://ds.arm.com/ds-5-community-edition/

需要 Eclipse 4.4(“Luna”)。

【讨论】:

  • 是否可以使用它来使用 JNI 调试 Java 常规应用程序?
【解决方案2】:

使用新的 Android ADT 捆绑包(截至 2013 年 5 月 12 日),不再需要旧的 8.02 软件包。如果您发现自己正在编辑文本文件以使调试工作,那么您正在遵循不再适用的旧方向。使用 android ADT 和 Debug As-> Android Native Application。如果尚未在设置中完成,您可能仍需要设置 NDK_DEBUG=1。

【讨论】:

    【解决方案3】:

    对于那些希望在 Eclipse Juno 版本中调试 NDK/JNI 代码的人来说,它本质上是在安装 Android 插件和 CDT 插件后内置到软件中的。您可能会遇到问题,因为 C/C++ 开发工具 (CDT 8.1) 引入的问题截至 2012 年 7 月 24 日尚未修复。有关该问题的详细信息,请参阅以下链接。如果您只想调试,请继续阅读。

    http://code.google.com/p/android/issues/detail?id=33788

    如果它工作正常,您只需在 C 和 Debug As -> Android Native Application 中设置断点。不幸的是,您不能同时调试 java 和 C。如果问题出在 Java 中并且您想进行调试,请单击 Debug As -> Android Application

    如果它不能正常工作,并且您想弄清楚如何正确获取它,以下软件包对我有用。

      Android DDMS  20.0.1.v201207132230-403220
      Android Development Tools 20.0.1.v201207132230-403220 
      Android Hierarchy Viewer  20.0.1.v201207132230-403220 
      Android Native Development Tools  20.0.1.v201207132230-403220 
      Android Traceview 20.0.1.v201207132230-403220 
      Autotools support for CDT (Incubation)    3.0.1.201202152032  
      C/C++ Development Tools   8.0.2.201202111925  
      C/C++ Development Tools SDK   8.0.2.201202111925
      C/C++ Library API Documentation Hover Help (Incubation)   
      Eclipse SDK   4.2.0.I20120608-1400    
      Tracer for OpenGL ES  20.0.1.v201207132230-403220
    

    android 软件包来自于在 Eclipse Help->Install New Software... 对话框中设置 Work With: 选项

    dl-ssl.google.com/android/eclipse/
    

    较旧的 8.02...CDT 包来自于将 Work With: 选项设置为 Indigo 发行包。

    download.eclipse.org/releases/indigo
    

    如果已安装,您需要在安装旧版 CDT 之前删除 Android 工具和新版 CDT。安装好CDT 8.02...版本后,即可安装Android工具并开始调试。

    确保使用构建命令“ndk-build NDK_DEBUG=1”

    Autotools 可能不是必需的,但由于它已安装,我已将其列出。

    请注意,单步执行代码有时会很奇怪。

    【讨论】:

    • 我正在恢复此评论,以说明 Java 代码 可以 与 Native JNI 代码同时调试。为此,首先将调试作为 Android 原生应用程序。接下来附加到 ADT 设备选项卡中的 Android 进程(选择进程,然后单击绿色错误图标)。现在将命中 Java 和 C++ 代码中的断点。不是很无缝,但足够接近。
    【解决方案4】:

    Eclipse Sequoyah 1.0 具有 android ndk 功能。Eclipse 3.6 发布火车和 3.5 6 月初发布。

    【讨论】:

      【解决方案5】:

      我认为今天没有任何东西可以解决这个问题,但我知道 Doug Schaefer 在他想要完成的事情清单上排名很高。请关注his blog 以获取相关更新。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多