概述
libunwind时堆栈解析常用的库。我们可以基于 libunwind 提供的接口实现一个打印函数栈的函数,在需要查看函数调用栈的位置调用该函数即可,然后可以使用 grep 命令对输出结果进行分析。
今天来进行交叉编译。
下载地址
说明
- 根据说明可知libunwind默认生成动态和静态库,所有编译时不需要指定。
- 如果不清楚–host具体该填啥可以参考config.sub,通常为交叉编译器前缀。
- 本文使用的交叉编译器及路径
/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu
编译过程
mkdir /tmp/libunwind-aarch64 ./configure --prefix=/tmp/libunwind-aarch64 --disable-tests --host=aarch64-linux-gnu \ CC=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \ CFLAGS="-march=armv8-a -O3" \ CXX=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \ CPPFLAGS=-std=c++17 \ AR=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar \ LD=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld\ RANLIB=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ranlib\ STRIP=/home/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip make -j8 make install