2023-01-17 423
我有在Android上运行的C ++代码库,并希望用户发送崩溃报告.
我正在使用 acra库适用于Java代码的正常工作正常,但是当某些东西崩溃时在本机代码中,我没有得到足够的信息.实际上,我想接收本机函数调用的堆栈跟踪.我知道我的流程结束后,将崩溃信息打印到logcat中,我可以配置ACRA以读取/发送logcat.我已经设置了我的代码,以使用信号处理程序检测本机崩溃,然后返回Java进行ACRA报告.它也可以.
但是,这种方法的时机不好-ACRA在崩溃过程还活着时读取日志,而Android(不知道确切的部分)在崩溃过程完全结束后,将崩溃报告写给LogCat.因此,我在使用ACRA时不会收到堆栈跟踪.
因此,我正在寻找一种从C ++代码中读取当前堆栈跟踪的方法,并将此信息馈送到ACRA(或其他崩溃报告工具).
我所需要的只是写给logcat的某种报告:
10-10 08:29:13.868: INFO/DEBUG(1121): #00 pc 0003fc7c /data/data/com.ex.lib/libapp.so
10-10 08:29:13.891: INFO/DEBUG(1121): #04 pc 00016df4 /system/lib/libdvm.so
10-10 08:29:13.891: INFO/DEBUG(1121): #05 pc 00045284 /system/lib/libdvm.so
10-10 08:29:13.899: INFO/DEBUG(1121): #15 pc 00047c56 /system/lib/libdvm.so
10-10 08:29:13.922: INFO/DEBUG(1121): #16 pc 00030e4c /system/lib/libandroid_runtime.so
有什么方法可以从我的代码中获取此堆栈跟踪?
我已经在我的游戏基础项目中完成了此操作 – 您可以在此处查看处理此操作的JNI代码:
调用此处定义的Java方法:
ACRA可以捕获应用程序崩溃.然后,您可以实例化将执行logcat的第二个进程(请参见 this问题)命令,按您的应用程序名称进行过滤,然后有一个过程将转储文件发送给您.这远非最佳,因为:
,但我没有找到其他选择.
以上所述是小编给大家介绍的本地代码–如何以编程方式获得函数调用堆栈(回溯).,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25751.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态