最近在使用C++在NDK环境下开发,发现无法使用try catch捕获异常,请问NDK环境下如何捕获异常?
想在程序crash的时候,做个dump文件.方便大规模测试.
想在程序crash的时候,做个dump文件.方便大规模测试.
解决方案 »
- ExpandableListView 分隔线真让人纠结
- Android访问网络的怪问题!!
- android gridview
- android;如何实现按钮的按下与抬起是赋不同值?
- 关于如何记录阅读进度,求点拨。标题要长…………一晚上过去了,怎么没有人回复我一下啊。
- java.net.SocketException: Address family not supported by protocol
- Launcher修改以后编译错误,马上改回来还是编译错误
- android 分享功能的下拉列表的应用制定排序
- Android HttpClient获取json数据丢失
- 看大家android界面设计是拿Android Design UI Kit设计的,不直接在eclipse里设计,但是UI KIT怎么用呢
- android如何在锁屏状态下,弹出的对话框在锁屏之上。
- android 中网络数据和本地数据的问题?
可以具体点吗?
我这边类似
try
{
renderFrame();
} catch (const std::exception& e)
{
__android_log_print( ANDROID_LOG_INFO, "debug", "catch catch catch catch catch\n" );
jclass jc = env->FindClass("java/lang/Error");
if(jc) env->ThrowNew (jc, "unidentified exception");
}
catch (...)
{
__android_log_print( ANDROID_LOG_INFO, "debug", "catch catch catch catch catch\n" );
jclass jc = env->FindClass("java/lang/Error");
if(jc) env->ThrowNew (jc, "unidentified exception");
}
renderFrame里面我估计写几个错误的指针操作.
不会进入catch块.程序直接就崩掉了.
因为不是在调试环境做crash dump.是想做apk出来运行,获取dump文件,存起来.
个人想法,仅供参考,呵呵。
但是有一个奇怪的问题。 logcat 的log里面 没有 内存的信息 。
类似这些
04-24 05:37:00.476: I/DEBUG(58): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00001a85
04-24 05:37:00.476: I/DEBUG(58): r0 f6502688 r1 00000000 r2 f6502688 r3 00001a85
04-24 05:37:00.476: I/DEBUG(58): r4 00003000 r5 00000000 r6 00000039 r7 00000000
04-24 05:37:00.558: I/DEBUG(58): #00 pc 50408a56 /data/data/tiny.test2/lib/libcaneth.so
04-24 05:37:00.558: I/DEBUG(58): #01 lr
没有这些的话,我没有办法定位具体crash的地址 。。
是不是还要设些别的? 谢谢!