在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应用程序的正确选择是什么?
答案 0 :(得分:2)
__ 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();