Как вы отлаживаете C ++ для Android NDK? - PullRequest
4 голосов
/ 26 июля 2011

Какие есть варианты отладки нативного кода на Android?GDB - единственный доступный отладчик?Является ли их интеграция с Visual Studio?

Я просмотрел документы по Android и выполнил поиск, но не уверен, что нашел правильный ответ.Надеюсь, некоторые SO Pro избавят меня от проб и ошибок.

Но если я выберу gdb или printf, я вместо этого перейду в Mono для Android!

Решение! WinGDB доступно для Android.Отладка в Visual Studio!

Ответы [ 3 ]

5 голосов
/ 26 июля 2011

Я сам не пробовал, но в этом сообщении в блоге объясняется, как заставить работать отладку NDK в Visual Studio.

Также я много изучал NDKотладка на работе, и я не видел упоминаний об использовании отладчика, кроме gdb (но, пожалуйста, не принимайте это как факт, это только из моего опыта).Мне удалось успешно отладить NDK через Eclipse, так что, по крайней мере, вы знаете, что это возможно!Если вы решите пойти по этому пути, я могу предоставить вам некоторые ссылки / документацию, чтобы вы начали.


Редактировать: У меня наконец нашел время для форматирования и загрузки документации по отладке NDK.Сейчас это не удивительно (с точки зрения форматирования и т. Д.), Но это сработало для нескольких человек на всех платформах.Вы можете найти это здесь .Надеюсь, это поможет!
0 голосов
/ 06 ноября 2012

Для дальнейшего использования мне нравится это решение, которое показывает, как использовать графические производные gdb, такие как cgdb (http://cgdb.github.com/) и ddd (http://www.gnu.org/software/ddd/): http://mhandroid.wordpress.com/2011/01/23/using-cgdb-with-ndk-debug-and-cgdb-tutorial/

)
0 голосов
/ 26 июля 2011

Я нашел эти макроопределения, но кроме этого я не могу сказать.

#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 

ОБНОВЛЕНИЕ

Очевидно, вы можете использовать DDD либо как плагин для затмения, как найденона Code Maemo

или под управлением Cygwin вы найдете несколько полезных ссылок в Отладка Android NDK, под windows

Кроме того, есть некоторые оченьполезные плагины

Плагин CDT для затмения

Плагин Sequoya

Установка и настройка стека подробно описаны в Как отладить нативный код с Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...