zoukankan      html  css  js  c++  java
  • Andoid 利用ndk-stack定位崩溃代码

    Android NDK自从版本R6开始, 提供了一个工具ndk-stack( 在目录{ndk_root}/中 ). 这个工具能自动分析dump下来的crash log, 将崩溃时的调用内存地址和c++代码一行一行对应起来.

    执行命令ndk-stack --help

    Usage:
       ndk-stack -sym <path> [-dump <path>]
    
          -sym  Contains full path to the root directory for symbols.
          -dump Contains full path to the file containing the crash dump.
                This is an optional parameter. If ommited, ndk-stack will
                read input data from stdin
    • -dump参数很容易理解, 即dump下来的log文本文件. ndk-stack会分析此文件.
    • -sym参数就是你android项目下,编译成功之后,obj目录下的文件.

    示范一下:

    $ adb logcat | ndk-stack -sym ./obj/local/armeabi
    ********** Crash dump: **********
    Build fingerprint: 'htc_wwe/htc_bravo/bravo:2.3.3/
    GRI40/96875.1:user/release-keys'
    pid: 1723, tid: 1743  >>> com.packtpub.droidblaster <<<
    signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000c
    Stack frame #00  pc 00010a2c  /data/data/com.packtpub.droidblaster/lib/libdroidblaster.so: Routine update in /home/packt/Project/Chapter11/DroidBlaster_Part11/jni/TimeService.cpp:25
    Stack frame #01  pc 00009fcc  /data/data/com.packtpub.droidblaster/lib/libdroidblaster.so: Routine onStep in /home/packt/Project/Chapter11/DroidBlaster_Part11/jni/DroidBlaster.cpp:53
    Stack frame #02  pc 0000a348  /data/data/com.packtpub.droidblaster/lib/libdroidblaster.so: Routine run in /home/packt/Project/Chapter11/DroidBlaster_Part11/jni/EventLoop.cpp:49
    Stack frame #03  pc 0000f994  /data/data/com.packtpub.droidblaster/lib/libdroidblaster.so: Routine android_main in /home/packt/Project/Chapter11/DroidBlaster_Part11/jni/Main.cpp:31

    ref from:http://www.cnblogs.com/jhzhu/p/3801640.html
  • 相关阅读:
    线程的取消/撤销 (转)
    Linux 3.0发布有感(转)
    Linux下挂载与解除挂载U盘
    Ubuntu 中文编码设置
    Linux Kernel 3.0新特性概览(转)
    pthread_cond_wait()用法分析
    brk和sbrk及内存分配函数介绍
    [转]Vmware ESX 4上虚拟机 Redhat 5.2(CentOS 5.2)启动在Starting udev 停几个小时
    [贺]通过Oracle 10g OCP的三门考试
    [原]Oracle外部表结合游标完成统计一例
  • 原文地址:https://www.cnblogs.com/beeasy/p/5048974.html
Copyright © 2011-2022 走看看