22

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

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

4

5 回答 5

5

对于那些希望在 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 软件包来自设置Work With: Eclipse Help->Install New Software...对话框上的选项

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,但由于它已安装,我已将其列出。

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

于 2012-07-24T17:42:05.290 回答
3

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

于 2010-05-04T18:45:22.240 回答
2

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

需要 Eclipse 4.4(“Luna”)。

于 2011-11-29T18:09:33.463 回答
1

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

于 2013-05-12T07:49:56.510 回答
0

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

于 2010-05-12T18:37:53.190 回答