windows下,我们对于.net程序发生Crash,资源泄露,死锁等问题的分析,有神器windbg,那现在我们的.net core程序运行在linux上时,该怎么进行对对Core Dump文件进行分析呢?今天介绍一款Linux/mac os下的一款调试利器:lldb。
关于lldb的介绍,大家可以直奔官网传送门。话不多说,先说一下安装步骤。
一、先安装依赖:
yum -y install gcc gcc-c++ swig python-devel libedit-devel automake autoconf libtool make wget
二、下载llvm源码(注意:.net core2.0.0只能使用lldb 3.6;.net core2.1以上必须是3.9.0,下同):
wget http://releases.llvm.org/3.6.0/llvm-3.6.0.src.tar.xz tar -xf llvm-3.6.0.src.tar.xz mv llvm-3.6.0.src llvm
三、进入llvm/tools目录并下载clang源码:
cd llvm/tools wget http://releases.llvm.org/3.6.0/cfe-3.6.0.src.tar.xz tar -xf cfe-3.6.0.src.tar.xz mv cfe-3.6.0.src clang
四、下载lldb源码:
wget http://releases.llvm.org/3.6.0/lldb-3.6.0.src.tar.xz tar -xf lldb-3.6.0.src.tar.xz mv lldb-3.6.0.src lldb
五、下载compiler-rt的源码:
cd ../projects wget http://releases.llvm.org/3.6.0/compiler-rt-3.6.0.src.tar.xz tar -xf compiler-rt-3.6.0.src.tar.xz mv compiler-rt-3.6.0.src compiler-rt
六、下载libcxxabi的源码:
wget http://releases.llvm.org/3.6.0/libcxxabi-3.6.0.src.tar.xz tar -xf libcxxabi-3.6.0.src.tar.xz mv libcxxabi-3.6.0.src libcxxabi
七、下载libcxx的源码:
wget http://releases.llvm.org/3.6.0/libcxx-3.6.0.src.tar.xz tar -xf libcxx-3.6.0.src.tar.xz mv libcxx-3.6.0.src libcxx
八、回到llvm目录,配置编译选项:
cd .. ./configure --enable-optimized CC=gcc CXX=g++
九、编译llvm:
make
十、估计得个把小时,编译成功后,单独安装lldb即可:
cd tools/lldb make install
检查是否成功:
lldb version
参考资料:《.NET Core 2.0应用程序高级调试》 Debugging CoreCLR