Android NDK pretty printing

#c #android-ndk #std #pretty-print #c -standard-library

#c #android-ndk #std #pretty-печать #c -стандартная библиотека

Вопрос:

Я использую Android NDK с Eclipse CDT, работающий на OSX.

Я хотел бы иметь возможность отлаживать содержимое библиотеки STD. Я видел несколько руководств по использованию скриптов Python для включения этой «красивой печати». Проблема в том, что все они используют gdb по умолчанию, а не тот, который предоставляется Android NDK, поэтому все они терпят неудачу для меня.

Как я могу отладить библиотеку STD с помощью Android NDK?

Комментарии:

1. Интересный вопрос, я долго искал такую возможность! Все еще нет ответа, несмотря на щедрость:-/.

2. Я также ищу, как сделать pretty printing для Android NDK

Ответ №1:

Если вам нужно просто отладить, а не заставить работать какой-то уже выбранный инструмент, я могу поделиться этим кодом:

dlog.h:

 #include <android/log.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG  , "~~~~~~", __VA_ARGS__)
#define DLOG(...) __android_log_print(ANDROID_LOG_DEBUG  , "~~~~~~", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR  , "~~~~~~", __VA_ARGS__)
#define ELOG(...) __android_log_print(ANDROID_LOG_ERROR  , "~~~~~~", __VA_ARGS__)
 

Я определяю оба DLOG и LOGD , чтобы избежать необходимости запоминать порядок ))

в Android.mk :

 include $(CLEAR_VARS)
LOCAL_MODULE := ...
LOCAL_SRC_FILES  = ...
LOCAL_LDLIBS := -llog      # <=========== link with liblog.so
include $(BUILD_SHARED_LIBRARY)
 

Использование:

 DLOG("this is a test %s 0x%x","whoa!",1234);
 

Вы видите эти сообщения в том же месте, где видите Log.d() вывод, я предпочитаю adb logcat или adb logcat | grep something .

Комментарии:

1. Спасибо за ответ, но это не то, что я ищу. Я не хочу писать DLOG везде. Мне нужно иметь возможность проверять, например, std::vector в заданный момент, отлаживая с помощью eclipse. Прямо сейчас он просто показывает направления памяти.