快速搭建本地 .NET Core 运行时调试环境

需要的软件环境:

  • Oracle VM VirtualBox

  • CentOS 7

  • llvm lldb 3.6.0 (3.5.0我试过 dumpobj时候一直报无效参数 Invalid parameter T_T)

先在VirtualBox创建新虚机:
一路 Next ,文件位置可以自定义下(默认是在Users/当前用户/.. 目录下)
创建完选在
设置 – 存储 里 选下 CentOS7的镜像文件
设置 – 网络里选 桥接网卡
然后启动虚机 开始安装CentOS7

快速搭建本地 .NET Core 运行时调试环境

安装过程基本都是默认选项,键盘、时区选下、软件选择 选 最小安装(Minimal Install)
开始安装,设置下root账号的密码

快速搭建本地 .NET Core 运行时调试环境

  • 下面所有命令都是在root权限下完成的

安装后重启
root登录后先改网卡配置:
/etc/sysconfig/network-scripts/ 目录下会有个 ifcfg-e开头的文件,修改其内容:onboot=no改成onboot=yes
然后用 ifup 命令**网口

快速搭建本地 .NET Core 运行时调试环境

快速搭建本地 .NET Core 运行时调试环境

安装net-tools
yum -y install net-tools
ifconfig 查看下IP地址

快速搭建本地 .NET Core 运行时调试环境

有了IP后就可以用自己习惯的ssh工具连接啦,比如:PuTTY

默认防火墙 systemctl disable firewalld.service
重启 reboot
验证状态 firewall-cmd --state

安装 dotnet SDK
mkdir /home/tool && cd /home/tool

下SDK
curl -sSL -o dotnet-1.1.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019

创建目录 解压
mkdir -p /opt/dotnet && tar zxf dotnet-1.1.tar.gz -C /opt/dotnet

创建链接
ln -s /opt/dotnet/dotnet /usr/local/bin

验证 dotnet --info

如果验证出现如下错误



1

2


Failed to load /opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so, error: libunwind.so.8: cannot open shared object file: No such file or directory

Failed to bind to CoreCLR at '/opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so'



则安装:yum install libunwind

如果验证出现如下错误



1


Failed to initialize CoreCLR, HRESULT: 0x80131500



则安装:yum install icu

成功则会有版本信息:

快速搭建本地 .NET Core 运行时调试环境

接下来安装llvm lldb

相关依赖安装:

  • yum -y install wget

  • yum install gcc

  • yum install gcc-c++

  • yum install swig python-devel libedit-devel

下载llvm的源代码:

  • 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

下载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

配置编译选项:

  • cd ..

  • ./configure --enable-optimized CC=gcc CXX=g++

编译llvm:

  • make

漫长的等待… … …

如果编译过程这样的错误c++: internal compiler error: Killed (program cc1plus 则增加swap分区文件大小后再试:
dd if=/dev/zero of=/swapfile bs=1k count=2048000
mkswap /swapfile
swapon /swapfile

编译成功后 只安装lldb,进入llvm/tools/lldb中运行 make install

创建一个.net core web站点
mkdir -p /home/www/core01 && cd /home/www/core01

dotnet new -t web
dotnet restore
ASPNETCORE_URLS="http://*:5000" dotnet run

快速搭建本地 .NET Core 运行时调试环境

启动lldb 附加进程 加载SOS调试扩展

快速搭建本地 .NET Core 运行时调试环境

执行SOS命令:soshelp

快速搭建本地 .NET Core 运行时调试环境

看到熟悉的托管调试命令 甚是亲切 赶紧试试

快速搭建本地 .NET Core 运行时调试环境

快速搭建本地 .NET Core 运行时调试环境

快速搭建本地 .NET Core 运行时调试环境

快速搭建本地 .NET Core 运行时调试环境

此文只是简单快速的搭建 .NET Core 在CentOS7下运行时的调试环境,后续再总结 Windbg 和 LLDB 之间的命令习惯差异。

参考文档:

https://github.com/dotnet/coreclr/blob/master/Documentation/building/debugging-instructions.md
http://www.cnblogs.com/dudu/p/build-coreclr-on-centos.html
http://www.cnblogs.com/dudu/p/4294374.html

相关文章:

原文地址:https://espider.github.io/NET-Core/dotnet-core-lldb/


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

快速搭建本地 .NET Core 运行时调试环境