MTK平台GAT抓取log

平台:MTK


DESCRIPTION:
如何用GAT抓取log , 比如当MTKLogger出现异常,或SD卡不可用时

利用MTK 提供的GAT(官网可以下载)可以进行抓取:
一. 抓取问题复现的log
1.连接usb到pc,确认手机usb debugging选项是开启的
2.打开GAT
3.设定log存储路径,window->preferences->savelog
4.点击控制栏 L字样的按钮,开始录制
5.复现现象
6.再次点击L字样的按钮,停止录制
7.到第4步设定的路径上取log

二. 抓取开机log
1.连接usb到pc,确认手机usb debugging选项是开启的
2.手机关机
3.打开GAT
4.设定log存储路径,window->preferences->savelog
5.点击控制栏 L字样的按钮,开始录制
6.手机开机,进入待机5分钟以上
7.再次点击L字样的按钮,停止录制
8.到第4步设定的路径上取log


平台:MTK


DESCRIPTION:

如何抓取开机Log 一般分析开机失败或者开机过程异常问题,都牵涉到如何抓取开机log的问题,为了顺利抓取开机Log便于分析问题,参照如下抓取有效log: 1.如果开机过程还没有出现开机动画,就已经异常,直接抓取UART串口log; 2.如果开机动画已经显示,后面出现异常,可以首先check SD卡是否已经mount成功,如果SD卡mount成功,直接提供Mobilelog; 否则,可以通过adb logcat抓取log或者通过我司release的GAT Tool抓取log,其中logcat抓取log的command: adb logcat -v time -b main -b events -b system>logcat.txt


打印CPP方法调用堆栈

一、CPP打印堆栈:

  1. #include <utils/CallStack.h>
  2. ...
  3. android::CallStack stack;
  4. stack.update(1, gettid());
  5. stack.log("satcklog", ANDROID_LOG_ERROR, "stackdump:");
  6. ...
  7. }
  8. mk文件中,加入:
  9. LOCAL_SHARED_LIBRARIES += libutils
  10. 这样设置打印出来的堆栈信息的Log tagsatcklog,信息格式类似于:
  11. 01-01 08:02:30.615 372 2158 E satcklog: stackdump:#00 pc 0002671b /system/lib/libcamera_client.so (_ZN7android16CameraParameters12setVideoSizeEii+70)

二、用addr2line工具进行具体的代码行数定位。

  1. 其中addr2line的使用,以PIXI5-8 TMO举例,在根目录使用如下命令可以定位地址信息对应的代码:
  2. ./prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-addr2line -C -f -e out/target/product/pixi584g/symbols/system/lib/libcamera_client.so 0002671b
  3. 输出为:
  4. android::CameraParameters::setVideoSize(int, int)
  5. /proc/self/cwd/frameworks/av/camera/CameraParameters.cpp:384 (discriminator 1)
  6. 即可定位具体的代码行数。