快速搭建本地 .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
如果验证出现如下错误
12 |
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 directoryFailed 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 运行时调试环境相关推荐
- docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境
[Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...
- .NET Core运行时和基础类库性能提升
微软宣布改进了.NET Core运行时和基础类库的性能.虽然没有像改进ASP.NET Core的性能那样大肆宣传,但这些改进同样重要. 其中,以下10个方面的变化比较显著:集合.LINQ.压缩.加密. ...
- java -jar debug_java – 如何在运行时调试jar?
我是一个很奇怪的位置(从我的java-newbie的角度): >使用Eclipse我写了一个"java程序"(一些具有类的.java文件),其中基本上(批处理)读取一个文本* ...
- 前端快速搭建本地服务器的几种方法
背景:在前端项目中搭建本地服务器可以实现多个设备(手机和电脑)运行同一个地址就可以看到效果前提是在局域网内,以前用的Apache搭建本地服务器来运行前端静态项目,现在可以同过node直接搭建或者是直接 ...
- 用pycharm搭建odoo 12, 11,10 开发调试环境
用pycharm搭建odoo 12, 11,10 开发调试环境 个人认为在windows平台下Pycharm 是最好的 odoo开发工具, 配置简单,操作简便,界面清爽,支持远程调试python,ja ...
- 快速搭建本地FTP服务器的方法
快速搭建一个本地的FTP服务器 快速搭建一个本地的FTP服务器 如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试. 第一步:配置IIS Web服务器 1.1 ...
- 快速搭建本地服务器 php,本地PHP服务器环境快速搭建
* 下载WampServer64,安装并运行: 如果出现运行时错误(缺少.dll)就先卸载,并安装相应的VC++ redistribute 120 对应的是2013版本 140对应的是2015版本 1 ...
- 护卫神php套件快速搭建本地IIS网站,及解决80端口被封、动态IP甚至无公网IP
护卫神php套件是开放的PHP套件,整合内容有: PHP 5.2.17 MySQL 5.5.19.0 PhpMyAdmin 3.5.3 MyODBC 3.51 ZendOptimizer 3.3.0 ...
- zookeeper -- Mac 上 Intellij IDEA 配置 zookeeper(3.5.8) 源码阅读、运行、调试环境
近期需要整理MIT6.824 中 分布式系统协调服务 zookeeper 的一些知识,想要在Mac 本地搭建一个可以方便运行调试的zookeeper环境,这玩意竟然耗费了一上午的时间,实在是不可忍:当 ...
最新文章
- 完整的项目工程目录结构
- Nginx面试中最常见的18道题及答案
- OAuth(开放授权):(第三方)通过(授权)令牌(Access Token)访问用户数据
- 软考系统架构师笔记-案例分析重点(一)
- 外媒:欧盟针对谷歌语音助手展开反垄断调查
- 算法训练 表达式计算
- Python之协程、异步IO、redis缓存、rabbitMQ队列
- 常用邮箱的POP3、IMAP地址
- PCB电路板生产完成分析
- unity播放360全景视频
- U-net复现pytorch版本 以及制作自己的数据集并训练
- 学习移动机器人SLAM、路径规划必看的几本书
- 阿里小蜜这一年,经历了哪些技术变迁?
- 05-SparkRDD原理和编程接口
- Kimball维度建模
- PAT-1032 挖掘机技术哪家强
- Keras(1):Keras安装与简介
- 02_C++实现多线程服务器代码(linux系统)
- 对机载预警雷达STAP的慢时调频干扰matlab
- 魅声T800声卡调试教程
热门文章
- .NET6之MiniAPI(九):基于角色的身份验证和授权
- Ant Design Blazor 组件库的路由复用多标签页介绍
- NET问答: 是否有通用的方法判断一个 Type 是 Number ?
- NET问答:如何理解 IEnumerableT 和 IQueryableT
- 开源推荐:.Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统
- 移动 Azure 资源后如何快速修复 Dashboard
- 快速了解 ASP.NET Core Blazor
- 双城生活,一种相对无奈且幸福的选择
- ABP快速开发一个.NET Core电商平台
- 全局变量初始化顺序探究