• 宕机调试


    1、Linux下的段错误(Segmentation-fault)产生的原因及调试方法(经典)

    Linux下的段错误(Segmentation-fault)产生的原因及调试方法(经典).zip

    2、addr2line通过elf调试文件追踪宕机代码

    eg: intel curie死机故障定位

    BOOT
    
    
    Quark SE ID 16 Rev 0 A0
    ARC Core state: 00004000
        11121|QRK|QKSE| INFO| USB INIT
        11171|QRK| USB| INFO| USB plugged
        11237|QRK|MAIN| INFO| BSP init done
        11238|QRK| CFW| INFO| BLE service init in progress...
        11239|QRK| CFW| INFO| GPIO service init in progress...
        11243|QRK|CHGR| INFO| Charging state: DISCHARGE
        11243|QRK| DRV| INFO| charger_config function not implemented
        11243|QRK| CFW| INFO| battery service init in progress...
        11247|QRK| CFW| INFO| circular_storage service init in progress...
        11247|QRK| CFW| INFO| ll_storage service init in progress...
        11258|QRK| CFW| INFO| properties service init in progress...
        11258|QRK|MAIN| INFO| CFW init done
        11258|QRK|  IQ| INFO| all iq initialization completed
        11259|QRK| BLE| INFO| setting up MIS 's LL_STORAGE_SERVICE.
        11259|QRK|MAIN| INFO| SENSING service init in progress...
        12772|QRK|CHGR| INFO| Charging state: FAULT
        12780|QRK| BLE| INFO| ble_enable: state 1
        12786|QRK| BLE| INFO| Registering GAP
        12787|QRK| BLE| INFO| Registering DIS
        12790|QRK| BLE| INFO| Registering BAS
        12791|QRK| BLE| INFO| Registering SHOES
        12791|QRK| BLE| INFO| Registering MIS
        12794|QRK| BLE| INFO| Registering ISPP
        12794|QRK| BLE| INFO| ble_enable_rsp: addr/type: 84:68:3e:00:7a:96/0
        12801|QRK|[W] | INFO| data check error
        12801|QRK|[D] | INFO| mible_init -- done
        12817|QRK|MAIN| INFO| Device not bonded
        12817|QRK|MAIN| INFO| advertise_start: reason:0x0
        11232|ARC|MAIN| INFO| BSP init done
        11238|ARC| CFW| INFO| ADC service init in progress...
        11238|ARC| CFW| INFO| GPIO service init in progress...
        11238|ARC| CFW| INFO| GPIO service init in progress...
        11366|ARC| CFW| INFO| SS service init in progress...
        11366|ARC|MAIN| INFO| CFW init done
    
    PANIC for 0 (dump located on 0xa800e000)
    QRK BUILD CKSUM: 337e35cf
    QRK BUILD VERSION: 00000001
    QRK PANIC (2, 0x00000000) - EIP=0x4002be78 - ESP=0xa800b9a0
    
    Registers:
    
    cr2:   00000000
    edi:   00000000
    esi:   00000000
    ebx:   000005eb
    ebp:   a800b9a0
    edx:   00004e9a
    ecx:   ffffffff
    eax:   000005eb
    error: 00000000
    cs:    40020008
    flags: 00000206
    ss:    00000010
    
    Stack:
    
    0xa800b9a0: a800b9ac 4002acd8 4002acdc a800b9b8
    0xa800b9b0: 4002a885 00000000 00000202 00000000
    0xa800b9c0: 00000000 00000200 a800bd74 00000000
    0xa800b9d0: add3ca5b 7f274dbb 8ebcbffc f9fcebcf
    0xa800b9e0: 1b25046e 08450000 e4027308 a21c50ad
    0xa800b9f0: 320e0ce7 50864610 4d14c444 82498c81
    0xa800ba00: d1f55f4b bdeef79e fc7bba74 3337cf6f
    0xa800ba10: 67f7cfbf edc872c6 d0cbffd0 3f9ff7a9
    0xa800ba20: 090d2000 285b4159 a5a0c210 1b84a48b
    0xa800ba30: 09513ac5 823a5d70 501c9500 a0842082
    
    PANIC for 1 (dump located on 0xa8014000)
    ARC BUILD CKSUM: 2002c655
    ARC BUILD VERSION: 00000001
    ARC PANIC - eret=0x40045cac - sp=0x80001438
    
    Registers:
    
     r0:00000001  r1:00000015  r2:00000000  r3:00000000
     r4:a8010964  r5:00000000  r6:00000332  r7:a8010028
     r8:00000332  r9:fffffc01 r10:0000000c r11:00000009
    r12:b0800a10 r13:ffffffff r14:00000000 r15:7fffffff
    r16:0000003f r17:a800f208 r18:a8010148 r19:fffffffe
    r20:00000000 r21:400414f2 r22:00000001 r23:a8010f14
    r24:a801027c r25:a800eac8  gp:4003b932 fp:a800eac8
     sp:80001438  il:40045cac r30:00000000  bl:400350c4
    
    Status registers:
    
          ecr:00000000
          efa:00000000
         eret:40045cac
     erstatus:00000000
    
    Stack:
    
    0x80001438: 40040930 ffffffff ffffffff 4003464e
    0x80001448: 400460f2 40046124 71140050 8342c25c
    0x80001458: 2c1d1da8 10c76340 df21f79d f8dfff73
    0x80001468: 5fcde8ec bf7f3f7f 019a99a2 4405201a
    0x80001478: d09300a1 33081909 cf97e7fd ff5f5d6d
    0x80001488: 33e5f6f7 ffcff330 92908701 75250830
    0x80001498: 09525360 d4201590 e61d125b 76fbfe76
    0x800014a8: fb6d95bd fef73ef3 000025b2 1cf849c5
    0x800014b8: 22152470 e4008021 e4ceffa1 93f15a59
    0x800014c8: ee46dced b7d6fbff 20040625 95d26842
    curie@ubuntu:~/b/device/out$ ../wearable_device_sw/external/toolchain/tools/compiler/gcc-ia/5.2.1/bin/i586-intel-elfiamcu-addr2line -e firmware/quark.elf -a 40040930
  • 相关阅读:
    python 网络爬虫框架scrapy使用说明
    计算机数据表示
    NoSQL 数据库应用
    什么是java序列化?什么情况下需要序列化?
    怎么实现动态代理?
    动态代理是什么?应用场景?
    什么是反射?有什么作用?
    nio中的Files类常用方法有哪些?
    什么是JAVA内部类?
    常见的异常类有哪些?
  • 原文地址:https://www.cnblogs.com/dong1/p/6422404.html
Copyright © 2020-2023  润新知