(1)发生Error的backtrace
我们就以经常出现NE为例,来说明这个情况,一般出现NE之后,main Log会有如下信息:
03-03 11:34:35.971851 10105 10105 I AEE_AED : pid: 690, tid: 10062, >>> /vendor/bin/hw/camerahalserver <<<
03-03 11:34:35.971953 10105 10105 I AEE_AED : read_request: receive requirement from aee_core_forwar
03-03 11:34:35.972122 9919 9919 V ViewRootImpl[CameraLauncher]: enqueueInputEvent: event = MotionEvent { action=ACTION_MOVE, actionButton=0, id[0]=0, x[0]=163.77254, y[0]=491.15894, toolType[0]=TOOL_TYPE_FINGER, id[1]=1, x[1]=569.2095, y[1]=887.506, toolType[1]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=2, eventTime=355096, downTime=351966, deviceId=3, source=0x1002, displayId=0 },processImmediately = true,mProcessInputEventsScheduled = false, this = android.view.ViewRootImpl@22ca12b
03-03 11:34:35.972240 10105 10105 D AEE_AED : u:r:mtk_hal_camera:s0
03-03 11:34:35.972450 10105 10105 V AEE_AED : dashboard_record_update() : rec->module = /vendor/bin/hw/camerahalserver
03-03 11:34:35.972495 10105 10105 V AEE_AED : Update record[0]
03-03 11:34:35.972518 10105 10105 D AEE_AED : i, Cls, count, last_time, module
03-03 11:34:35.972539 10105 10105 D AEE_AED : ====================================================================
03-03 11:34:35.972566 10105 10105 D AEE_AED : 0, 3, 1, 1646278475, /vendor/bin/hw/camerahalserver
03-03 11:34:35.972588 10105 10105 D AEE_AED : 1, -1, 0, 0,
03-03 11:34:35.972611 10105 10105 D AEE_AED : 2, -1, 0, 0,
03-03 11:34:35.972633 10105 10105 D AEE_AED : 3, -1, 0, 0,
03-03 11:34:35.972654 10105 10105 D AEE_AED : 4, -1, 0, 0,
03-03 11:34:35.972676 10105 10105 D AEE_AED : 5, -1, 0, 0,
03-03 11:34:35.972697 10105 10105 D AEE_AED : 6, -1, 0, 0,
03-03 11:34:35.972719 10105 10105 D AEE_AED : 7, -1, 0, 0,
03-03 11:34:35.972761 10105 10105 W AEE_AED : DAL feature is off, just return
03-03 11:34:35.972759 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.972825 10105 10105 I AEE_AED : Dumping EXP/Native (NE)
03-03 11:34:35.972874 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.972968 10105 10105 I AEE_AED : aed_wait_decrypt done! file base encryption
03-03 11:34:35.972976 9919 9919 D CamAp_Zoom-0: [calculateDistanceRatio] distanceRatio = 0.974541187286377
03-03 11:34:35.973056 10105 10105 I AEE_AED : db base:/data/aee_exp
03-03 11:34:35.973058 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.973792 9727 9793 I DebugLoggerUI/FileMonitor: onEvent(). event = 1073742080, path = temp
03-03 11:34:35.973882 10105 10105 D AEE_AED : aed_report_dump_open: Using /data/aee_exp/temp/db.X7S25S
03-03 11:34:35.974393 10105 10105 I AEE_AED : predump starts
03-03 11:34:35.974873 10105 10105 E AEE_AED : Fail to open process map: /proc/690/maps
03-03 11:34:35.975002 10105 10105 E AEE_AED : generate_pagemap_data: Copy from pid:690 failed(13), Permission denied
03-03 11:34:35.975420 10105 10105 E AEE_AED : Fail to open process map: /proc/690/maps
03-03 11:34:35.975531 10105 10105 E AEE_AED : generate_pagemap_data: Copy from pid:690 failed(13), Permission denied
03-03 11:34:35.975564 10105 10105 I AEE_AED : predump ends
03-03 11:34:35.975901 10105 10105 D AEE_AED : aed_ne_core_session: notify core_forwarder to continue
03-03 11:34:35.975971 10105 10105 I AEE_AED : ne_direct_unwind start
03-03 11:34:35.976128 10104 10104 E libc : Access denied finding property "persist.vendor.aee.log.status"
03-03 11:34:35.976270 10104 10104 I aee_core_forwarder: process_coredump: Got core filename from coredump receiver /data/aee_exp/temp/db.X7S25S/COREDUMP
03-03 11:34:35.988892 9919 9919 V ViewRootImpl[CameraLauncher]: enqueueInputEvent: event = MotionEvent { action=ACTION_MOVE, actionButton=0, id[0]=0, x[0]=163.77254, y[0]=491.15894, toolType[0]=TOOL_TYPE_FINGER, id[1]=1, x[1]=569.2095, y[1]=890.3817, toolType[1]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=1, eventTime=355113, downTime=351966, deviceId=3, source=0x1002, displayId=0 },processImmediately = true,mProcessInputEventsScheduled = false, this = android.view.ViewRootImpl@22ca12b
03-03 11:34:35.989547 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.989708 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.989846 9919 9919 D CamAp_Zoom-0: [calculateDistanceRatio] distanceRatio = 0.9820560216903687
03-03 11:34:35.989922 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:35.992925 10105 10105 E AEE_AED : dump_registers32:write stack ok
03-03 11:34:35.993119 10105 10105 I AEE_AED : dump_regs:dump regs ok
03-03 11:34:35.993711 10105 10105 I AEE_AED : stack start(9e4e6ec8),end(9e4e8e6b),length(1fa3)
03-03 11:34:35.999261 10105 10105 I AEE_AED : dump_stack32:dump stack ok
03-03 11:34:36.005201 9919 9919 V ViewRootImpl[CameraLauncher]: enqueueInputEvent: event = MotionEvent { action=ACTION_MOVE, actionButton=0, id[0]=0, x[0]=163.77254, y[0]=491.15894, toolType[0]=TOOL_TYPE_FINGER, id[1]=1, x[1]=570.7074, y[1]=890.8813, toolType[1]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=1, eventTime=355125, downTime=351966, deviceId=3, source=0x1002, displayId=0 },processImmediately = true,mProcessInputEventsScheduled = false, this = android.view.ViewRootImpl@22ca12b
03-03 11:34:36.005864 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:36.006074 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:36.006189 9919 9919 D CamAp_Zoom-0: [calculateDistanceRatio] distanceRatio = 0.9873480796813965
03-03 11:34:36.006250 9919 9919 I Config : wideAngleId:-1isZoomSwitchSupport:false
03-03 11:34:36.039469 10105 10105 I AEE_AED : #00 pc 00062b20 /apex/com.android.runtime/lib/bionic/libc.so (abort+172) (BuildId: 6a24d276a45a50f2b3001b261bd2c63a)
03-03 11:34:36.039678 10105 10105 I AEE_AED : #01 pc 00004cf3 /system/lib/liblog.so (__android_log_default_aborter+6) (BuildId: 5dc5d63c2a2976e23b23e8e92482e701)
03-03 11:34:36.039897 10105 10105 I AEE_AED : #02 pc 00005403 /system/lib/liblog.so (__android_log_assert+174) (BuildId: 5dc5d63c2a2976e23b23e8e92482e701)
03-03 11:34:36.041062 10105 10105 I AEE_AED : #03 pc 000f0027 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::onDIPStreamBaseCB(NSCam::Feature::P2Util::DIPParams const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+734) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.042051 10105 10105 I AEE_AED : #04 pc 000f6b83 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::CookieStore<NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData> >::staticProcessCB(NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>::T_Msg const&, NSCam::Feature::P2Util::DIPParams, void*, bool)+174) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.043290 10105 10105 I AEE_AED : #05 pc 000f6a79 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::CookieStore<NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData> >::enque(NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>*, NSCam::Feature::P2Util::DIPStream*, NSCam::Feature::P2Util::DIPParams, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+400) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.044398 10105 10105 I AEE_AED : #06 pc 000f0b65 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>::enqueDIPStreamBase(NSCam::Feature::P2Util::DIPStream*, NSCam::Feature::P2Util::DIPParams const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+100) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.045674 10105 10105 I AEE_AED : #07 pc 000ef22f /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::enqueFeatureStream(NSCam::Feature::P2Util::DIPParams&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData&)+386) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.046881 10105 10105 I AEE_AED : #08 pc 000edc07 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::runP2HW(android::sp<NSCam::NSCamFeature::NSFeaturePipe::StreamingFeatureRequest> const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData&, std::__1::vector<NSCam::NSCamFeature::NSFeaturePipe::P2G::P2HW, std::__1::allocator<NSCam::NSCamFeature::NSFeaturePipe::P2G::P2HW> > const&, std::__1::vector<NSCam::NSCamFeature::NSFeaturePipe::P2G::PMDP, std::__1::allocator<NSCam::NSCamFeature::NSFeaturePipe::P2G::PMDP> > const&)+326) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.047992 10105 10105 I AEE_AED : #09 pc 000eb5c7 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::processP2A(android::sp<NSCam::NSCamFeature::NSFeaturePipe::StreamingFeatureRequest> const&, NSCam::NSCamFeature::NSFeaturePipe::RSCResult const&)+642) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.049129 10105 10105 I AEE_AED : #10 pc 000eb18d /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::onThreadLoop()+736) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
03-03 11:34:36.049421 10105 10105 I AEE_AED : ne_direct_unwind end
03-03 11:34:36.049822 10105 10105 I AEE_AED : $** *** *** *** *** *** *** *** Exception *** *** *** *** *** *** *** **$
03-03 11:34:36.050323 10105 10105 I AEE_AED : Build Info: 'alps-mp-r0.mp1:alps-mp-r0.mp1-V8.288:mt6739:S01,VISION/VISION_V1/VISION_V1:11/RP1A.200720.011/1645003953:userdebug/release-keys'
03-03 11:34:36.050423 10105 10105 I AEE_AED : MSSI Info: 'VISION/VISION_V1/VISION_V1:11/RP1A.200720.011/1645003953:userdebug/release-keys'
03-03 11:34:36.051617 10105 10105 I AEE_AED : Exception Log Time:[Thu Mar 3 11:34:36 CST 2022] [355.182551]
03-03 11:34:36.051617 10105 10105 I AEE_AED :
03-03 11:34:36.051740 10105 10105 I AEE_AED : Exception Class: Native (NE)
03-03 11:34:36.051772 10105 10105 I AEE_AED : Exception Type: SIGABRT
03-03 11:34:36.051772 10105 10105 I AEE_AED :
03-03 11:34:36.051803 10105 10105 I AEE_AED : Current Executing Process:
03-03 11:34:36.051803 10105 10105 I AEE_AED : pid: 690, tid: 10062
03-03 11:34:36.051803 10105 10105 I AEE_AED : /vendor/bin/hw/camerahalserver
03-03 11:34:36.051803 10105 10105 I AEE_AED :
03-03 11:34:36.052707 10105 10105 I AEE_AED : $** *** *** *** *** *** *** *** Exception *** *** *** *** *** *** *** **$
如果需要db文件分析,但是并没有产生,可参考MTK平台如何获取所有异常的AEE db文件来生成db文件。
(2)db文件解析
在产生的db文件后,一般文件名:aee_exp/db.00.NE/db.00.NE.dbg,可通过Mtk提供的Tools工具Gat来解析(当中的MediatekDBViewer),进而可解析出如下:
Exception Log Time:[Thu Mar 3 11:34:36 CST 2022] [355.182551]
Exception Class: Native (NE)
Exception Type: SIGABRT
Current Executing Process:
pid: 690, tid: 10062
/vendor/bin/hw/camerahalserver
Backtrace:
#00 pc 00062b20 /apex/com.android.runtime/lib/bionic/libc.so (abort+172) (BuildId: 6a24d276a45a50f2b3001b261bd2c63a)
#01 pc 00004cf3 /system/lib/liblog.so (__android_log_default_aborter+6) (BuildId: 5dc5d63c2a2976e23b23e8e92482e701)
#02 pc 00005403 /system/lib/liblog.so (__android_log_assert+174) (BuildId: 5dc5d63c2a2976e23b23e8e92482e701)
#03 pc 000f0027 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::onDIPStreamBaseCB(NSCam::Feature::P2Util::DIPParams const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+734) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#04 pc 000f6b83 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::CookieStore<NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData> >::staticProcessCB(NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>::T_Msg const&, NSCam::Feature::P2Util::DIPParams, void*, bool)+174) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#05 pc 000f6a79 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::CookieStore<NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData> >::enque(NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>*, NSCam::Feature::P2Util::DIPStream*, NSCam::Feature::P2Util::DIPParams, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+400) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#06 pc 000f0b65 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::DIPStreamBase<NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData>::enqueDIPStreamBase(NSCam::Feature::P2Util::DIPStream*, NSCam::Feature::P2Util::DIPParams const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData const&)+100) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#07 pc 000ef22f /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::enqueFeatureStream(NSCam::Feature::P2Util::DIPParams&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData&)+386) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#08 pc 000edc07 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::runP2HW(android::sp<NSCam::NSCamFeature::NSFeaturePipe::StreamingFeatureRequest> const&, NSCam::NSCamFeature::NSFeaturePipe::G::P2AEnqueData&, std::__1::vector<NSCam::NSCamFeature::NSFeaturePipe::P2G::P2HW, std::__1::allocator<NSCam::NSCamFeature::NSFeaturePipe::P2G::P2HW> > const&, std::__1::vector<NSCam::NSCamFeature::NSFeaturePipe::P2G::PMDP, std::__1::allocator<NSCam::NSCamFeature::NSFeaturePipe::P2G::PMDP> > const&)+326) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#09 pc 000eb5c7 /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::processP2A(android::sp<NSCam::NSCamFeature::NSFeaturePipe::StreamingFeatureRequest> const&, NSCam::NSCamFeature::NSFeaturePipe::RSCResult const&)+642) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
#10 pc 000eb18d /vendor/lib/libmtkcam.featurepipe.streaming.so (NSCam::NSCamFeature::NSFeaturePipe::G::P2ANode::onThreadLoop()+736) (BuildId: c3ebd39afd08fbf5c10379afb8965ea0)
$** *** *** *** *** *** *** *** Exception *** *** *** *** *** *** *** **$
(3)使用addr2line来定位文件和行数
(A)addr2line参数使用
用法:addr2line [选项] [地址]
-a --addresses Show addresses
-b --target=<bfdname> Set the binary file format
-e --exe=<executable> Set the input file name (default is a.out)
-i --inlines Unwind inlined functions
-j --section=<name> Read section-relative offsets instead of addresses
-p --pretty-print Make the output easier to read for humans
-s --basenames Strip directory names
-f --functions Show function names
-C --demangle[=style] Demangle function names
-R --recurse-limit Enable a limit on recursion whilst demangling. [Default]
-r --no-recurse-limit Disable a limit on recursion whilst demangling
-h --help Display this information
-v --version Display the program's version
常用的如下几个参数:
-a 在函数名、文件和行号信息之前,显示地址,以十六进制形式
-b 指定目标文件的格式为bfdname
-e 指定需要转换地址的可执行文件名
-j 给出的地址代表指定section的偏移,而非绝对地址
-f 在显示文件名、行号输出信息的同时显示函数名信息
-p 使得该函数的输出信息更加人性化,每一个地址的信息占一行
(B)使用方法
- -e 后面加上so的文件名
- -f 同时输出函数名称
//addr2line -e '/out/target/product/k39tv1_bsp_1g/symbols/system/lib/liblog.so' 00005403 -f
__android_log_call_aborter
system/core/liblog/logger_write.cpp:189
//addr2line -e '/code/m896_mt39_Bengal/out/target/product/k39tv1_bsp_1g/symbols/vendor/lib/libmtkcam.featurepipe.streaming.so' 000f0027 -f
vendor/mediatek/proprietary/hardware/mtkcam3/feature/core/featurePipe/streaming/G_P2ANode.cpp:918
(C)addr2line得到行号为??:?或??:0的原因
如果遇到addr2line得到??:?或??:0的情况,原因就是编译得到的so文件没有附加上符号表(symbolic)信息。
如下:
./symbols/vendor/lib/libmtkcam.featurepipe.streaming.so //使用symbols目录下的so
./vendor/lib/libmtkcam.featurepipe.streaming.so
./symbols/system/lib/liblog.so //使用symbols目录下的so
./system/lib/liblog.so