快速搭建本地 .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
安裝過程基本都是默認選項,鍵盤、時區選下、軟件選擇 選 最小安裝(Minimal Install)
開始安裝,設置下root賬號的密碼
下面所有命令都是在root權限下完成的
安裝后重啟
root登錄后先改網卡配置:
/etc/sysconfig/network-scripts/ 目錄下會有個 ifcfg-e開頭的文件,修改其內容:onboot=no改成onboot=yes
然后用 ifup 命令激活網口
安裝net-tools
yum -y install net-tools
ifconfig 查看下IP地址
有了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
成功則會有版本信息:
接下來安裝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
啟動lldb 附加進程 加載SOS調試擴展
執行SOS命令:soshelp
看到熟悉的托管調試命令 甚是親切 趕緊試試
此文只是簡單快速的搭建 .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
相關文章:
CLR運行時細節 - Method Descriptor
CLR運行時細節 - 繼承多態的實現
原文地址:https://espider.github.io/NET-Core/dotnet-core-lldb/
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
贊賞
人贊賞
總結
以上是生活随笔為你收集整理的快速搭建本地 .NET Core 运行时调试环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源库 Natasha2016 ,让IL
- 下一篇: 想和你一起为 Visual Studio