ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【camx】 backtrace 报错信息的简单筛选方式

2021-06-30 10:33:06  阅读:339  来源: 互联网

标签:camx vendor qcom backtrace CamX 报错 cpp proprietary


//
在我们终端 lunch 过的目录 执行 stack 加上带有报错日志的文件路径, 他会帮我们过滤trace 信息如下操作

我的报错文件存放在: ~/log/build.log

则执行命令如下:

stack ~/log/build.log

得到结果如下:

ts@ts-HP-EliteDesk-800-G5-TWR:~/BM_NEW/LINUX/android/vendor/qcom/proprietary/chi-cdk$ stack ~/log/build.log 
device/qcom/sm6150/sm6150.mk:115: warning: "Compiling with full value-added framework"
hardware/qcom/media/conf_files/sm6150/sm6150.mk:28: warning: "Compiling with full value-added framework or for AUTO Platform"
hardware/qcom/media/conf_files/sm6150/sm6150.mk:42: warning: "Enabling codec2.0 SW only for non-generic odm build variant"
mkdir: 无法创建目录"/firmware": 权限不够
Searching for native crashes in /home/ts/log/build.log
Reading symbols from /home/ts/BM_NEW/LINUX/android/out/target/product/sm6150/symbols
signal 9 (Killed)
signal 9 (Killed)
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8 in tid 5145 (provider@2.4-se), pid 5062 (provider@2.4-se)
Revision: '0'
pid: 5062, tid: 5145, name: provider@2.4-se  >>> /vendor/bin/hw/android.hardware.camera.provider@2.4-service_64 <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8
     x0  0000000000000000  x1  0000000000000000  x2  0000000000000000  x3  0000000000000f00
     x4  0000000000000870  x5  0000000080800000  x6  5f5b490425000000  x7  000080a504495b5f
     x8  20f53b4b3362b0da  x9  20f53b4b3362b0da  x10 0000007b52501d60  x11 0000000000000039
     x12 0000000000000010  x13 0000000000000005  x14 0000000000000008  x15 00002fc1bfaa5c6c
     x16 0000007b55cc9358  x17 0000007b55d322a4  x18 0000007b50344000  x19 0000007b52502650
     x20 0000007b38694000  x21 0000000000000000  x22 0000007b4aa61300  x23 00000000000000ab
     x24 0000007b5250d020  x25 0000000000000000  x26 0000007b55cc3c16  x27 0000000000000000
     x28 0000000000000004  x29 0000007b525022c0
Using arm64 toolchain from: /home/ts/BM_NEW/LINUX/android/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/

Stack Trace:
  RELADDR           FUNCTION                                                                            FILE:LINE
  00000000000042cc  Tsldc::SetWindows(unsigned int, unsigned int, unsigned int, unsigned int)@@Base+40  /vendor/lib64/libtsldc.so
  v-------------->  ChiMemCpyNode::LDCProcess(ChiImageList*, ChiImageList*, unsigned long)              vendor/qcom/proprietary/chi-cdk/vendor/node/eptz/camxchinodeeptz.cpp:1501
  v-------------->  ChiMemCpyNode::ProcessRequest(ChiNodeProcessRequestInfo*)                           vendor/qcom/proprietary/chi-cdk/vendor/node/eptz/camxchinodeeptz.cpp:1213
  00000000000046a4  MemCpyNodeProcRequest(ChiNodeProcessRequestInfo*)+1828                              vendor/qcom/proprietary/chi-cdk/vendor/node/eptz/camxchinodeeptz.cpp:491
  00000000004e4270  CamX::ChiNodeWrapper::ExecuteProcessRequest(CamX::ExecuteProcessRequestData*)+2352  vendor/qcom/proprietary/camx/src/core/chi/camxchinodewrapper.cpp:2187
  v-------------->  CamX::DeferredRequestQueue::DeferredWorkerWrapper(void*)                            vendor/qcom/proprietary/camx/src/core/camxnode.cpp:1648
  v-------------->  CamX::DeferredRequestQueue::DeferredWorkerCore(CamX::Dependency*)                   vendor/qcom/proprietary/camx/src/core/camxdeferredrequestqueue.cpp:287
  00000000004f4f34  CamX::DeferredRequestQueue::DeferredWorkerWrapper(void*)+10948                      vendor/qcom/proprietary/camx/src/core/camxdeferredrequestqueue.cpp:360
  v-------------->  CamX::ThreadCore::DispatchJob(CamX::RuntimeJob*)                                    vendor/qcom/proprietary/camx/src/utils/camxthreadcore.cpp:302
  v-------------->  CamX::ThreadCore::ProcessJobQueue()                                                 vendor/qcom/proprietary/camx/src/utils/camxthreadcore.cpp:462
  v-------------->  CamX::ThreadCore::DoWork()                                                          vendor/qcom/proprietary/camx/src/utils/camxthreadcore.cpp:370
  000000000047e330  CamX::ThreadCore::WorkerThreadBody(void*)+1192                                      vendor/qcom/proprietary/camx/src/utils/camxthreadcore.cpp:337
  00000000000e68a0  __pthread_start(void*)+36) (BuildId: f8da9ef138257423256285049dff190a               /apex/com.android.runtime/lib64/bionic/libc.so
  0000000000084b6c  __start_thread+64) (BuildId: f8da9ef138257423256285049dff190a

可以看到调用栈中最上面是报错的函数SetWindows();

然后我们返回到文件中,查找这个函数上面的一些信息, 可以看到其报空指针异常 casue : null pointer dereference;

在这里插入图片描述

然后我们就可以按照这个方法的位置空指针异常去查看代码进行分析了, 一般这种概率性出现的空指针, 基本跟调用时序有关系;

标签:camx,vendor,qcom,backtrace,CamX,报错,cpp,proprietary
来源: https://blog.csdn.net/tunmengsmile/article/details/118355491

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有