2014-06-23 19 views
6

Tôi đang sử dụng NDK của Android với Eclipse + CDT, chạy trên OSX.Android NDK in đẹp

Tôi muốn có thể gỡ lỗi nội dung của thư viện STD. Tôi đã nhìn thấy một số hướng dẫn về cách sử dụng các kịch bản Python để cho phép "in đẹp" này. Vấn đề là tất cả chúng đều đang sử dụng gdb mặc định và không phải là cái được cung cấp bởi NDK của Android, vì vậy tất cả chúng đều thất bại đối với tôi.

Làm cách nào để gỡ lỗi thư viện STD bằng NDK của Android?

+0

Câu hỏi thú vị, tôi đã tìm kiếm một khả năng như vậy trong một thời gian dài! Vẫn không có câu trả lời mặc dù tiền thưởng: - /. – PhilLab

+0

Tôi cũng đang tìm cách tạo bản in đẹp cho Android NDK – martinako

Trả lời

4

Nếu bạn cần chỉ gỡ lỗi, chứ không phải làm một số công việc cụ đã chọn, tôi có thể chia sẻ mã này:

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__) 

tôi xác định cả DLOGLOGD để tránh phải nhớ thứ tự))

trong Android.mk:

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

Cách sử dụng:

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

Bạn nhìn thấy những tin nhắn trong cùng một vị trí nơi bạn nhìn thấy các Log.d() đầu ra, tôi thích adb logcat hoặc adb logcat | grep something.

+0

Cảm ơn câu trả lời nhưng không phải là những gì tôi đang tìm kiếm. Tôi không muốn phải viết DLOG mọi nơi. Tôi cần để có thể kiểm tra, ví dụ, một std :: vector trong một thời điểm nhất định, gỡ lỗi với nhật thực. Ngay bây giờ, nó chỉ hiển thị các hướng bộ nhớ. – user3468999