android 电视core dump分析

测试测了个bug, 操作dtmb 频道的时候系统重启, 由于生成了core dump文件,所以先看下core dump。一 . 要想调试core dump,首先要生成core dump, 一般只有c/c++编译生成的二进制程序崩溃了才会生成core dump, 一般需要以下设置。1) 运行ulimit -c  unlimited ----> 要置成unlimited, 这个
摘要由CSDN通过智能技术生成

测试测了个bug, 操作dtmb 频道的时候系统重启, 由于生成了core dump文件,所以先看下core dump。

一 . 要想调试core dump,首先要生成core dump, 一般只有c/c++编译生成的二进制程序崩溃了才会生成core dump, 一般需要以下设置。

1)

运行ulimit -c  unlimited

 ----> 要置成unlimited, 这个代表core dump文件大小,默认是0, 即不生成core dump

2)设置core dump文件路径以及文件名格式,

运行

echo '%e.core.%p' > /proc/sys/kernel/core_pattern

其中%e代表程序名, %p代表进程号

3) 有人说要关闭android系统的watch dog(这个我不太确定是否影响),我们是在工厂模式里关闭,其他android电视或者手机不知道在哪关了。

命令1) 是每次开机都要运行的,如果嫌麻烦,可以把命令写到initrc文件里。因为是在boot.img里,需要重烧版本了。



二. 准备工作

要调试core dump首先需要满足两点

第一点)需要知道是哪个程序崩溃生成的core dump

方法一, 运行 file Coredump.gz

结果

Coredump.gz: ELF 32-bit LSB  core file ARM, version 1 (SYSV), SVR4-style, from '/applications/bin/tvos'

看到了吗, 是tvos程序, 路径在电视falsh 中的/applications/bin/下

方法二

运行 

arm-none-linux-gnueabi-gdb /bin/ls ~/Coredump.gz

结果如下

.............

[New LWP 3129]
[New LWP 3956]
[New LWP 1724]
[New LWP 1746]
Core was generated by `/applications/bin/tvos'.
Program terminated with signal 6, Aborted.
#0  0x4120d976 in ?? ()
(gdb)

同样显示的是tvos程序

i)这里我们用了一个小技巧,先随便写了一个程序的路径,例如我们上面写的是/bin/ls,  那么gdb打开后,就会告诉我们,这个core dump文件是/applications/bin/tvos生成的。

ii)arm-none-linux-gnueabi-gdb 是调试core的程序,这个是厂商提供给我们的。从名字可以看出来,我们板子用的cpu是arm的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值