`
kukuqiu001
  • 浏览: 210835 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

android调试工具addr2line使用补充

阅读更多
参考自
http://blog168.chinaunix.net/space.php?uid=20564848&do=blog&id=94732

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

在Android.mk 文件中:
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
分享到:
评论

相关推荐

    addr2line.zip

    对于大型项目,`addr2line`可以与`gdb`、`addr2line`、`nm`等其他调试工具配合使用,形成一套强大的调试链路。例如,你可以先用`gdb`获取报错时的堆栈信息,然后用`addr2line`解析这些地址,快速定位问题源。 总的...

    Android调试bin和so

    总的来说,调试Android的bin和so文件需要结合logcat的日志、addr2line和objdump工具,以及可能的第三方调试辅助工具,来定位问题的源头。理解这些工具的用法和崩溃日志的含义,对于任何Android开发者来说都是至关...

    NDK或C++开发根据内存地址定位报错代码方法和步骤

    总的来说,通过正确使用`addr2line`工具和理解ABI的概念,开发者可以有效地定位C++代码中的错误,从而提高调试效率。在实际操作中,可能还需要结合其他调试工具,如gdb,以获取更丰富的调试信息。此外,对于多线程或...

    aarch64-linux-android-4.9

    2. **NDK集成**:此工具链可能与Android Native Development Kit (NDK)相关联,NDK是一套用于在Android平台上开发原生应用和库的工具。 3. **目标API级别**:根据目标设备的Android版本,选择合适的API级别进行编译...

    Android NDK开发Crash错误定位

    要定位NDK引发的崩溃问题,Android NDK提供了一些调试工具,包括addr2line、objdump和ndk-stack。这些工具可以帮助将崩溃的堆栈信息映射回具体的C/C++源代码位置。 addr2line工具可以将程序中的地址转换成对应的...

    LeakTracker

    总结来说,LeakTracker是Android开发中一个强大的内存泄漏检测工具,其解析相对地址的能力和优化的addr2line脚本,为开发者提供了更高效、准确的内存泄漏定位方法。通过深入理解和运用LeakTracker,开发者可以更好地...

    Android 开发

    2. **addr2line**:当Android应用程序崩溃时,内核通常会产生崩溃日志,其中包含内存地址。addr2line能够将这些地址转换为源代码中的行号,这样开发者就能快速定位到问题发生的精确位置。这对于分析崩溃报告和修复...

    对“仅通过崩溃地址找出源代码的出错行”一文的补充与改进

    在Linux系统中,可以使用`addr2line`工具将二进制文件的地址转换为源代码的位置。首先,需要获取程序的调试信息(如`.debug_info`节),这通常在编译时通过`-g`选项实现。然后,使用`objdump`或`readelf`查看程序的...

    unity-adb 工具使用

    3. **使用NDK工具辅助分析**:对于由原生代码引起的问题,可以利用NDK中的`addr2line`工具将报错信息中的行号转换成具体的函数名,有助于进一步定位问题所在。 #### 四、结语 综上所述,ADB作为一款功能强大的调试...

    ANDROID-CORE-DUMP-ANALYSIS

    在进行Android核心转储分析时,通常会用到的工具有`adb(adb logcat, adb bugreport)`、`gdbserver`、`crash_dump`、`addr2line`等,这些工具可以帮助开发者收集日志、调试信息,并将内存地址转换为源代码行,以便...

    coredump_article

    2. addr2line 和 nm:这两个工具可以将内存地址转换为源代码行号,帮助理解崩溃位置。 3. Valgrind:虽然主要用作内存错误检测工具,但也可以配合其 memcheck 工具进行核心 dump 分析。 4. SystemTap 和 perf:...

    Linux加载vmlinux调试

    总的来说,Linux加载vmlinux调试涉及到的关键步骤包括:启用DEBUG_INFO和DEBUG_VM配置,使用适当的gdb版本加载vmlinux,利用gdb的命令进行代码浏览和断点设置,以及结合addr2line工具来定位具体代码行。这些技能对于...

    androiddemounwindso

    这些工具链支持生成Dwarf调试信息,并且包含了一些用于处理和分析调用栈的工具,如addr2line、nm和readelf等。 5. **Android crash reporting**:在实际开发中,开发者可能会用到像Google Play服务提供的...

    Android调用堆栈跟踪实例分析

    这为定位问题提供了线索,开发者可以通过反编译库或使用第三方工具(如`addr2line`)将这些地址转换为函数名称。 要有效地分析这些堆栈信息,开发者需要具备以下技能: 1. **理解Android系统架构**:熟悉Linux内核...

    sony_imx335 driver驱动 适配hi3559平台

    开发者可能使用开源的驱动框架(如Linux的V4L2或UVC),并在此基础上进行定制。 7. **文件名"sony_imx335"**: 这可能是驱动程序的源代码文件或者编译后的二进制文件,包含了与Sony IMX335传感器交互的具体指令和...

    Native下如何获取调用栈?.pdf

    此外,Android还提供了NDK工具,如addr2line和nm,它们可以帮助我们将内存地址转换为源代码行号和函数名,增强backtrace的可读性。通过这些工具的组合使用,开发者可以更有效地分析和解决Native层的问题。 总结来说...

    tombstones

    5. **使用工具**:可以使用Android Studio的内置工具或者第三方工具,如gdb、addr2line等,来解析地址并转换为源代码行,使分析过程更高效。 **学习分析tombstone的意义** 理解和熟练分析tombstone文件对于开发者来...

    android杂记:C++文件的添加log方法分享

    有符号的库编译后是在指定路径下,开发者可以使用Android自带的arm的反汇编工具`arm-eabi-addr2line`来获取堆栈信息。使用这个工具的命令格式是: ``` arm-eabi-addr2line -f -e 库文件路径 地址1 地址2 ... ``` ...

    全志A80平台固定以太网的MAC地址ethernet_a80_merrii_20151203_1607.7z

    全志A80的以太网使用固定MAC地址.txt 2015/12/3 16:09 开发板:美睿的商业开发板 OS:android4.4.2(美睿提供) linux:3.4.39 发现全志平台的A80的以太网的MAC地址是变化的,由于需要做MAC地址和IP绑定的问题。 ...

    ap6212a0_bb16v3_sina33验证通过BT的功能_wifi部分有问题_20170626_1148没有外层目录.7z

    # frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ # frameworks/native/data/etc/android....

Global site tag (gtag.js) - Google Analytics