使用strace追踪触发系统调用时的程序的调用栈

1.strace除了可以追踪调用系统调用的程序之外,还可以打印出当前的调用栈。只需要在执行strace时加上-k参数就可以了,不过有些strace都不支持-k参数,所以需要自己来build带-k参数strace。

2.build unwind(strace需要使用的lib)。

libunwind:http://download.savannah.nongnu.org/releases/libunwind/

./configure --host=arm-linux-gnueabi --disable-dependency-tracking 2>&1 | tee configure_libunwind.log

make 2>&1 | tee make_libunwind.log

sudo make install 2>&1 | tee install_libunwind.log

3, build strace。

strace:https://strace.io/files/

libunwind header file is installed in /usr/local/include

./configure --host=arm-linux-gnueabi CFLAGS="-I/usr/local/include" --enable-stacktrace 2>&1 | tee enable_stracetrace.log
sudo make -j4 2>&1 | tee make_strace_static.log

原文地址:https://www.cnblogs.com/smilingsusu/p/13925453.html