android ndk调试陷阱

时间:2012-09-28 11:36:36

标签: android debugging android-ndk

在NDK(Only-native-C ++)应用程序中,设置编程调试陷阱的正确方法是什么?我的意思是可能停止应用程序来检查调用堆栈,变量等。 例如,在我的GameEngine中的WIN32调试陷阱下声明为

#define DIE() __asm{ int 3 }

对于iOS而言

#   if TARGET_IPHONE_SIMULATOR
#       define DIE() {__asm__("int3");}
#   else
#       define DIE() {__asm__("trap");}
#   endif

Android NDK应用程序的正确选择是什么?

2 个答案:

答案 0 :(得分:2)

来自“android / log.h”的

__ android_log_assert(...)应该可以正常工作。

这会让你进入调试器,因为它会引发SIGTRAP。 有关使用情况摘要,请参阅http://mobilepearls.com/labs/native-android-api/

答案 1 :(得分:0)

#include <signal.h>
raise(SIGTRAP);

或类似http://androidxref.com/5.0.0_r2/xref/system/core/liblog/logd_write.c函数:__ android_log_assert

__builtin_trap();