`

Native堆栈解析addr2line

阅读更多
Native堆栈解析addr2line

命令:
aarch64-linux-android-addr2line.exe –f –C –e libAddress address

举例如下:
F:\tools\GAT_exe_v3.1552.5\GATv3.1552.5\gat-win32-x86_64-3\prebuilt\android-sdk\bin>aarch64-linux-android-addr2line.exe
-f -C -e F:\Share\home\system4\MTK_5.1\CPY803_8_Volte_5.1_Int\mydroid\out\target\product\CPY803_8\symbols\system\lib64\l
ibsurfaceflinger.so 000000000001e98c
android::DisplayDevice::swapBuffers(android::HWComposer&) const  /home/system4/MTK_5.1/CPY803_8_Volte_5.1_Int/mydroid/frameworks/native/services/surfaceflinger/DisplayDevice.cpp:285

F:\tools\GAT_exe_v3.1552.5\GATv3.1552.5\gat-win32-x86_64-3\prebuilt\android-sdk\bin>aarch64-linux-android-addr2line.exe
-f -C -e F:\Share\home\system4\MTK_5.1\CPY803_8_Volte_5.1_Int\mydroid\out\target\product\CPY803_8\symbols\system\lib64\l
ibcutils.so 000000000000d5a4
__android_log_assert/home/system4/MTK_5.1/MTK_5.1_Volte_Dev/mydroid/system/core/liblog/logd_write_kern.c:438

Build fingerprint: 'Coolpad/Y803-8/Y803-8:5.1/LMY47D/5.1.033.P2.160602.Y803_8-LC:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 10476, tid: 10476, name: surfaceflinger  >>> /system/bin/surfaceflinger <<<
signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x3e8000028ec
Abort message: 'eglSwapBuffers(0x1, 0x7f956a0040) failed with 0x00003003'
ALOGE("eglSwapBuffers(%p, %p) failed with 0x%08x", mDisplay, mSurface, error);


backtrace:
    #00 pc 000000000000d5a4  /system/lib64/libcutils.so (__android_log_assert+236)
    #01 pc 000000000001e98c  /system/lib64/libsurfaceflinger.so
    #02 pc 0000000000030304  /system/lib64/libsurfaceflinger.so
    #03 pc 000000000002eb14  /system/lib64/libsurfaceflinger.so
    #04 pc 000000000002d12c  /system/lib64/libsurfaceflinger.so
    #05 pc 000000000002cde8  /system/lib64/libsurfaceflinger.so
    #06 pc 000000000001b600  /system/lib64/libutils.so (_ZN7android6Looper9pollInnerEi+300)
    #07 pc 000000000001b91c  /system/lib64/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+76)
    #08 pc 00000000000291c0  /system/lib64/libsurfaceflinger.so
    #09 pc 000000000002c868  /system/lib64/libsurfaceflinger.so (_ZN7android14SurfaceFlinger3runEv+20)
    #10 pc 0000000000000f5c  /system/bin/surfaceflinger
    #11 pc 00000000000196cc  /system/lib64/libc.so (__libc_init+96)
#12 pc 0000000000001048  /system/bin/surfaceflinger
1
0
分享到:
评论

相关推荐

    addr2line.zip

    例如,你可以先用`gdb`获取报错时的堆栈信息,然后用`addr2line`解析这些地址,快速定位问题源。 总的来说,`addr2line`是软件开发中不可或缺的调试利器,尤其在处理复杂系统和库文件时,它能帮助开发者快速理解...

    addr2line_x86平台

    addr2line是GNU Binutils工具链中的一部分,它能够帮助开发者从内存地址反解析出对应的源代码行号和函数名称,这对于定位和解决内存泄漏问题至关重要。本文将详细介绍addr2line在x86平台上的使用,以及如何结合内存...

    利用堆栈回溯、addr2line和Graphviz生成运行时函数调用图

    现在的软件源代码动则千万行,初学者常常感到迷惘,如果能自动生成关键函数的调用关系图,则思路可以清晰许多。如下面这幅图展示了WebKit网页渲染的部分函数执行过程,比单纯地看代码直观多了。...

    addr2line:使用`gimli`用Rust编写的跨平台`addr2line`克隆

    addr2line通过缓存已解析的信息addr2line优化内存速度。 DWARF信息在可能的情况下会延迟解析。 该库旨在同样进行到相当于现有的工具,如addr2line从binutils的, eu-addr2line从的elfutils,和llvm-symbolize从

    tensa-esp32-elf-addr2line

    tensa-esp32-elf-addr2line

    addr2line.exe

    addr2line.exe

    addr2line.exe win64 地址转行

    免费 免费 感谢 https://github.com/armink/CmBacktrace/blob/master/tools/addr2line/win64/addr2line.exe

    【保姆级IDF】ESP32调试利器:xtensa-esp32-elf-addr2line介绍、安装、使用

    【保姆级IDF】ESP32调试利器:xtensa-esp32-elf-addr2line介绍、安装、使用

    解析backtrace符号堆栈2次解析.zip

    在Linux下,可以使用addr2line工具,而在macOS下,可以使用atos命令。 五、二次解析 二次解析指的是对原始backtrace进行进一步的分析和处理。例如,我们可能需要过滤掉库函数,只关注应用程序自身的代码;或者我们...

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

    Qualcomm865_3/android-ndk-r21e/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-addr2line -f -C -e workplace/Qualcomm865_3/native-agent/Agent/bin/AC_card_agent ...

    addrtoline

    首先,`addr2line`的核心功能是解析ELF(Executable and Linkable Format)文件,这是Unix和类Unix系统中广泛使用的可执行和可链接文件格式。当程序运行时,每个内存地址都对应着代码执行的特定点,`addr2line`通过...

    leaktracer.zip

    总结来说,LeakTracker是检测和追踪内存泄漏的有效工具,通过解析源码和优化"leak-analyze-addr2line"脚本,我们可以更高效地定位内存泄漏问题,提升软件的健壮性和稳定性。深入理解LeakTracker的工作原理和优化技巧...

    LeakTracker

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

    单片机程序跑飞后寻找跑飞位置 .zip

    4. **解析结果**:addr2line会输出对应内存地址的源代码行号和文件名,这可以帮助你快速定位问题所在。 除此之外,为了更好地防止和处理单片机程序跑飞,开发者还需要关注以下几点: - **异常处理**:确保程序中设...

    单片机程序跑飞后寻找跑飞位置 1.zip

    4. **解析结果**:addr2line会输出对应内存地址的源代码行号和文件名,这可以帮助你快速定位问题所在。 除此之外,为了更好地防止和处理单片机程序跑飞,开发者还需要关注以下几点: - **异常处理**:确保程序中设...

    单片机程序跑飞后寻找跑飞位置

    4. **解析结果**:addr2line会输出对应内存地址的源代码行号和文件名,这可以帮助你快速定位问题所在。 除此之外,为了更好地防止和处理单片机程序跑飞,开发者还需要关注以下几点: - **异常处理**:确保程序中设...

    调用堆栈的类

    在Linux系统中,可以使用`addr2line`工具或者`backtrace_symbols`函数来完成这个任务。 3. **封装成类**:为了方便使用,我们可以将上述操作封装成一个类,提供获取调用堆栈的方法。类的实例化可以触发堆栈回溯,...

    错误日志库实现打印错误堆栈

    为了得到更精确的行号,可以使用`addr2line`工具或动态加载`libbfd`库。 3. **日志记录**:将收集到的错误信息(包括错误消息、堆栈跟踪等)写入日志文件。可以选择标准的日志级别(如DEBUG、INFO、ERROR等),并...

    name_addr.rar_ARP解析_arp_arp协议_域名解析

    标题中的"**name_addr.rar_ARP解析_arp_arp协议_域名解析**"指出这是一个关于ARP协议和域名解析的资源包。ARP(Address Resolution Protocol)是网络层的一个关键协议,用于将IP地址转换为物理(MAC)地址,而域名...

    Linux下進程崩潰時定位源代碼位置1

    如果错误发生在静态库或不在动态库中的代码,我们可以直接使用`addr2line`命令,结合可执行文件名和偏移地址,来确定出错的源代码行。例如,如果`addr2line -e 可执行文件名 偏移地址`,它将打印出对应的源代码行。 ...

Global site tag (gtag.js) - Google Analytics