`

android应用崩溃的调试方法

 
阅读更多
From http://changxianli6121.blog.163.com/blog/static/56392130201312652555385/
有两种方法可以分析 crash 的堆栈信息

1 google提供了一个python脚本,可以从

http://code.google.com/p/android-ndk-stacktrace-analyzer/
下载这个python脚本,然后使用 adb logcat -d > logfile 导出 crash 的log,
使用 arm-eabi-objdump 位于build/prebuilt/linux-x86/arm-eabi-4.2.1/bin下面
把so或exe转换成汇编代码,如:arm-eabi-objdump -S mylib.so > mylib.asm,
使用脚本

python parse_stack.py <asm-file> <logcat-file>

2 直接使用NDK下面的arm-linux-androideabi-addr2line

(D:\android-ndk-r8\toolchains\arm-linux-
androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-addr2line.exe)

例如:arm-linux-androideabi-addr2line -C -f -e libxxx.so 0x#####(address)

android调试工具addr2line使用补充

使用addr2line追踪自有动态库(so文件)的bug, 补充:
解决出现 ??:0 , 没法展示源代码行数的问题

在Android.mk 文件中:


Java代码
LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wl,-Map=test.map -g 


补充2个编译参数  -Wl,-Map=test.map -g .
增加gcc警告和调试标志

arm-linux-androideabi-addr2line -C -f -e /项目目录/obj/local/armeabi/libfaa_jni.so 0024362e

tip: 1,注意调试文件的位置在obj目录下,并非libs目录下生成的so文件
       2,0024362e 为出错的机制位置

还有:
在jni/目录下增加Application.mk 文件, 修改为debug 模式,进行调试 APP_OPTIM := debug
具体application.mk 文件的配置见: http://blog.csdn.net/weidawei0609/article/details/6561280

分享到:
评论

相关推荐

    android 卡死崩溃检测和拉起,App保活

    总的来说,为了实现"App保活",开发者需要对Android应用的生命周期有深入理解,熟练掌握异常处理、性能优化和资源管理技巧,并利用各种工具进行监测和调试。同时,对于Qt for Android开发者来说,还需要熟悉Qt框架下...

    Android-AppManager如何优雅的退出应用和处理崩溃异常自动重启

    通过以上方法,我们可以构建一个更健壮、用户体验更好的Android应用。`AppManager`作为应用管理的工具类,能够帮助我们统一处理应用的退出和异常情况,使得开发者能更专注于业务逻辑的实现。在实际开发中,结合具体...

    Android调试工具及方法

    在Android应用开发过程中,调试是不可或缺的一环,它帮助开发者找出程序中的错误,优化性能,以及确保应用的稳定性和用户体验。本文将详细讲解Android调试工具及方法,包括使用Android Studio的调试器、Logcat、布局...

    Go-acra-go-Android应用崩溃报表的后台(ACRA)

    【标题】:Go-acra-go-Android应用崩溃报表的后台(ACRA) 【描述】:在Android应用程序开发中,为了确保应用的稳定性和用户体验,监控并处理应用崩溃至关重要。Go-acra-go是针对Android应用的一个后台服务,它专门...

    AndroidLogCollector Java崩溃日志收集.zip_AndroidLog 崩溃_android_log col

    通过集成此工具,开发者可以在不改变用户正常使用体验的情况下,获得应用崩溃时的详细信息。 2. **工作原理** 当Java层的代码抛出未捕获的异常时,AndroidLogCollector会监听到这个事件。它会记录异常的堆栈信息,...

    Android 应用数据库升级方法.docx

    ### Android应用数据库升级方法 #### 一、引言 在Android开发中,应用程序的数据存储往往依赖于SQLite数据库。随着应用的不断迭代和发展,数据库结构也需要随之进行调整与优化。这便涉及到了数据库版本控制的问题...

    Android应用开发揭秘pdf

    从提供的文件信息中可以提取的知识点非常有限,且主要是关于获取技术书籍资源的信息,关于标题“Android应用开发揭秘pdf”和标签“Android 应用开发”的实质性内容并未提供。但尽管如此,我们可以根据这些有限的信息...

    Android手机端崩溃日志记录.zip

    总的来说,"Android手机端崩溃日志记录.zip"是一个旨在解决Android应用崩溃日志记录问题的开源解决方案,其核心组件"SpiderMan-master"提供了一套完整的日志收集、存储、上传流程,对开发者调试和优化应用有着重要...

    android 异常崩溃demo

    在Android应用开发中,异常和崩溃是常见的问题,开发者需要具备处理这些情况的能力。"android 异常崩溃demo"提供了一个实例,帮助开发者理解和解决在Android设备上遇到的应用程序错误。这个示例特别适用于那些在某些...

    UncaughtException不让Android应用异常退出

    通过以上方法,开发者可以提高Android应用的健壮性,减少因未捕获异常导致的应用退出。在`TestUncaughtException`这个测试用例中,我们可以模拟各种异常情况,验证这些策略是否能够有效地防止应用异常退出,并确保在...

    Android-Android应用的http响应代码管理以防止实时应用程序崩溃

    在Android应用中,你需要对这些不同的响应进行适当的处理,以确保应用的健壮性。 1. **异常处理**:当接收到非200状态码时,比如4xx(客户端错误)或5xx(服务器错误),应该捕获这些异常并提供合适的反馈。例如,...

    Android应用开发详解pdf

    3. **Android应用程序结构**:了解Android应用的基本结构至关重要,包括Manifest文件、Activity、Service、BroadcastReceiver和ContentProvider等组件的使用方法。 4. **UI设计**:书中将详细介绍如何使用XML布局...

    android程序崩溃异常捕获

    在Android应用开发中,异常捕获是至关重要的一个环节,它可以帮助开发者及时发现并解决程序运行过程中的问题,提升用户体验。本篇文章将深入探讨“Android程序崩溃异常捕获”这一主题,包括如何实现异常捕获并将其...

    Android-App崩溃恢复框架!

    在Android应用开发中,应用程序崩溃是开发者们常常面临的问题,这不仅影响用户体验,还可能导致数据丢失或服务中断。为了提供一个稳定、可靠的运行环境,"Android-App崩溃恢复框架!" 提供了一种解决方案,名为...

    android 自动提交应用崩溃报告源码.zip

    这个"android 自动提交应用崩溃报告源码.zip"文件很可能包含了一个名为"acra"的开源库的源代码,这个库专门用于处理Android应用的异常监控和报告。 "acra"全称是"Android Crash Report Aggregator",它是由ACRA...

    Android邮件收集崩溃日志

    intent.putExtra(Intent.EXTRA_SUBJECT, "应用崩溃报告"); StringBuilder body = new StringBuilder(); body.append("亲爱的开发者:\n\n"); for (String logPath : logs) { body.append("日志文件:").append...

    Android-CrashReporter是捕获应用程序崩溃并将其保存在文件中的便捷工具

    首先,我们需要了解Android应用崩溃的基本原理。在Android系统中,当应用程序遇到无法处理的异常时,会触发一个未捕获异常处理器(UncaughtExceptionHandler),默认情况下,这会导致应用程序崩溃并显示"应用已停止...

    Android应用源码之14.程序调试技术学习.zip

    在Android应用开发中,程序调试是一项至关重要的技能,它能帮助开发者找到并修复代码中的错误,提高应用的稳定性和性能。本资料包“Android应用源码之14.程序调试技术学习”提供了一些关于Android调试的实践教程和...

    Android-xCrash是一个安卓APP的崩溃捕获库。它支持捕获native崩溃和Java异常

    Android-xCrash是一款专为安卓应用开发者设计的崩溃捕获库,它的主要功能是帮助开发者在应用程序出现native崩溃或Java异常时,有效地收集并分析错误信息。这一工具的出现极大地提升了开发者诊断和修复应用程序问题的...

    android基础应用介绍PPt

    - 开发Android应用的主要工具是Android Studio,它集成了IDE、构建工具、调试器等。 - Android SDK(Software Development Kit)包含了开发Android应用所需的库、工具和文档。 - 使用Android Studio可以快速搭建...

Global site tag (gtag.js) - Google Analytics