2011-07-25 55 views
4

在Android上调试本机代码有哪些选项? gdb是唯一可用的调试器吗?他们是一个Visual Studio集成吗?你如何调试C++的Android NDK?

我已经浏览了Android文档并完成了googlesing,但没有信心我找到了正确的答案。希望有些SO Pro会为我省下试错的痛苦。

但是,如果我的选择是gdb或printf的,我会转而使用Android的Mono!

解决方案! WinGDB可用于Android。使用Visual Studio进行调试!

回答

5

中详细说明我还没有试过此我自己,但是这blog post介绍了如何获取NDK调试在Visual Studio中工作。

此外,我已经做了很多关于NDK调试的工作,我还没有看到提及使用gdb以外的调试器(但请不要将此作为事实,这只是从我的经验)。我已经成功通过Eclipse调试NDK,所以至少你知道这是可能的!如果您决定走这条路线,我可以为您提供一些链接/文档以帮助您入门。


编辑:我有 终于找到格式化并上传我的NDK调试文档的时间。目前(格式化等)并不令人惊讶,但它已经适用于所有平台上的少数人。你可以找到它 here。我希望它有帮助!

+0

+1,但你可以发布你提到的链接/文档,以利于他人阅读本文:) :) – Merlin

+0

对不起,这么晚回复 - 我一直很忙。是的,当然,我会在周末发布信息:) –

+0

@Merlin我不知道你是否收到我的编辑通知,所以我在这里发表评论,让你知道我已经链接到指南。抱歉花了这么长时间,我希望它有帮助。 –

0

我发现了这些宏定义,但除此之外我不能说。

#include <android/log.h> 

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "libnav", 
__VA_ARGS__) 
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "libnav", 
__VA_ARGS__) 
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "libnav", 
__VA_ARGS__) 
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "libnav", 
__VA_ARGS__) 
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "libnav", 
__VA_ARGS__) 

#endif // ANDROID_ALOG_H 

UPDATE

显然,你可以使用DDD无论是作为一个插件日食Code Maemo

如发现或在Cygwin下运行,你会发现一些有用的链接在Debugging Android NDK, under windows

另外还有一些非常有用的插件

CDT plugin for eclipse

Sequoya plugin

安装和栈的配置How-to debug native code with Android

+0

我对gdb是否是本机代码的唯一调试器有一个确定的答案。对不起,我原来的帖子不是很清楚。谢谢Merlin。 –

+0

我已经提供了额外的信息,但它似乎一切都围绕着gdb – Merlin

+0

我的理解是gdb是支持的调试器。但是我发现的所有教程都显得过时或者显然是错误的。我还没有看到可与NDK r5b和当前Eclipse一起使用的教程。 –