Android NDK断言.h问题
Android NDK assert.h problems
第一个-是NDEBUG在默认情况下已经定义的,所以断言在#undef之前不起作用。第二个-他们做他们的工作,但我没有收到登录DDMS。
如果有一些安卓特定的断言。h?
或者我只是做错了什么?
如果你想用assert编译你的代码,那么你可以用三种方法来完成:
- 在NDK生成命令行中使用NDK_DEBUG=1参数
- 将android:debuggable="true"添加到<application>标记在AndroidManifest.xml中
- 将APP_OPTIM:=debug添加到Application.mk文件中-这也将禁用优化并使用调试符号进行编译
通常程序在调用assert()
后会由于SIGSEGV
信号而崩溃,默认情况下NDEBUG
是定义的,您可以在编译过程中通过添加标志(LOCAL_CFLAGS += -UNDEBUG
)来关闭,但不适用于我的情况。
我发现另一个解决方案是使用__android_log_assert
,简单地定义如下,并将assert()
替换为assert3
:
#define assert3(e...) __android_log_assert(e, "TAG", #e)
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 断言失败错误,C++中的矢量下标超出范围问题
- 值传递、异常/断言和类设计.批评/问题
- 我遇到此问题,运行程序时出现一个弹出窗口,指出调试断言失败
- 断言在C++问题中失败
- 断言 C++问题失败
- 调试断言失败!奇怪的问题
- Android NDK断言.h问题
- QAbstractItemModel + ModelTest::rowsInserted断言问题