在dockers中调试dump的dotnet程序
其他调试参考文章
centos7使用lldb调试netcore应用转储dump文件
centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)
生成dump文件
如何在docker容器里面创建dump文件请参考:dotnet core调试docker下生成的dump文件
构建一个dotnet,lldb的docker image
dockerfile 文件,基于microsoft/dotnet:2.2-sdk安装lldb,docker builder -f dockerifle --pull -t dotnet-lldb build出来image
FROM microsoft/dotnet:2.2-sdk
RUN apt-get update && apt-get install -y \
cmake llvm-3.9 \
clang-3.9 \
lldb-3.9 \
liblldb-3.9-dev \
libunwind8 \
libunwind8-dev \
gettext \
libicu-dev \
liblttng-ust-dev \
libcurl4-openssl-dev \
libssl-dev \
uuid-dev \
libnuma-dev \
libkrb5-dev
安装dotnet-sos插件
dotnet-sos插件可以为我们的dump文件自动选择sos版本,可以有效避免因为dump程序所在机器和调试所有机器安装的dotnet sdk版本不一致带来的The libcoreclr.so module is not loaded yet in the target process错误问题。
dotnet tool install -g dotnet-sos
#插件安装完成后,运行
dotnet-sos install #如果找不到命令,可以到`~/.dotnet/tools`下面去。
安装dotnet-symbol插件
下载组件的符号文件。方便有效查看堆栈信息
dotnet tool install -g dotnet-symbol
插件安装后,针对要调试的dump文件下载对应的符号,实用程序dotnet-symbol将自动为我们的dump文件下载缺失的pdb文件。
#cd 到一个dump文件所在目录
dotnet-symbol <dump文件>
启动lldb进行调试
#在dump文件目录
lldb-3.9 dotnet -c <my dump file>
参考
https://github.com/dotnet/diagnostics
SOS实用工具:https://github.com/dotnet/diagnostics/blob/master/documentation/installing-sos-instructions.md
coredump调试参考:https://github.com/dotnet/diagnostics/blob/master/documentation/debugging-coredump.md
SOS命令参考:https://github.com/dotnet/diagnostics/blob/master/documentation/sos-debugging-extension.md
在dockers中调试dump的dotnet程序的更多相关文章
- 使用dotnet-monitor sidecar模式 dump docker运行的dotnet程序.
前情概要 随着容器和云技术的发展, 大量的应用运行在云上的容器中, 它们的好处是毋庸置疑的, 例如极大的提高了我们的研发部署速度, 快速的扩缩容等等, 但是也存在一些小小的问题, 例如难以调试. 基于 ...
- 自定义VS程序异常处理及调试Dump文件(一)
自定义VS程序异常处理及调试Dump文件(一) 1. Dump文件 1. Dump文件介绍 Dump文件(Dump File),也叫转储文件,以.DMP为文件后缀.dump文件是进程在内存中的镜像文件 ...
- 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...
- 调试技巧 —— 如何利用windbg + dump + map分析程序异常
调试技巧 —— 如何利用windbg + dump + map分析程序异常 逗比汪星人2011-09-04上传 调试技巧 —— 如何利用windbg + dump + map分析程序异常 http ...
- 在iis中调试asp.net程序
第一步,在iis中新建一个网站,名称为Langben,“物理路径”选择你的程序的根目录,端口你可以随便设置一个数,我这里设置为8888(后面要用到哦). 第二步,应用程序池设置一下 第三步,接下来,在 ...
- keil程序在外部RAM中调试的问题总结(个人的一点经验总结)
keil程序在内部RAM调试的基本步骤网上已经有非常多了,我就不再赘述,大家能够在网上搜到非常多. 可是有些时候内部RAM并不够用,这就须要将程序装入外部RAM中调试,而在这个过程中可能会出现各种各样 ...
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
第一次发表这样的博客,不会如何的排版,还有很多的不懂,大神勿喷哈! 同时是给自己做的一次记录,已方便后面可能会同样出现该问题后不用像无头苍蝇一样到处百度乱找 VS2017 启动调试出现 无法启动程序 ...
- 在编译器中调试spark程序处理
在IDEA中调试spark程序会报错 18/05/16 07:33:51 WARN NativeCodeLoader: Unable to load native-hadoop library for ...
- 【转】调试Release发布版程序的Crash错误
http://www.cppblog.com/Walker/archive/2012/11/08/146153.html http://blog.sina.com.cn/s/blog_48f93b53 ...
随机推荐
- 浅谈SOA与RPC
一.SOA 英文名称:Service Oriented Ambiguity 中文名称:面向服务架构 SOA是一种思想,目的是提供一种设计项目的思路,让开发时更有效率. 例如原来的分布式项目中,在每个项 ...
- 两台三层交换机单区域OSPF动态路由实验
一. 实验目的 1. 掌握三层交换机之间通过OSPF协议实现网段互通的配置方法. 2. 理解RIP协议和OSPF协议内部实现的不同点 二. 应用环境 当两台三层交换机级联时,为了保证每台交 ...
- 洛谷 P1156 垃圾陷阱 题解
题目传送门 dp+排序+01背包 就完事了??? 貌似就是这样的 代码: //dp 排序 01背包 #include<iostream> #include<cstdio> #i ...
- MacBook安装WIN7开机黑屏的解决办法
同事的一台Macbook,全盘用diskgenius格式化为MBR分区,支持BIOS启动,安装ghost版本的WIN7,开机黑屏,看了网上的帖子没有用,插入启动盘按option键选择从优盘启动,用di ...
- [LeetCode] 1123. Lowest Common Ancestor of Deepest Leaves 最深叶结点的最小公共父节点
Given a rooted binary tree, return the lowest common ancestor of its deepest leaves. Recall that: Th ...
- Deepin (Linux Debian)使用日记
(现在Deepin使用了debian的stable源,如果求新,推荐使用排行榜前三的Linux发行版——> Manjaro) 修复开启混合显卡驱动后,屏幕泛白偏灰问题“: https://blo ...
- ABP vNext中使用开源日志面板 LogDashboard
ABP vNext 使用 logdashboard 本文示例源码:https://github.com/liangshiw/LogDashboard/tree/master/samples/abpvn ...
- laravel5.5框架中视图间如何共享数据?视图间共享数据的两种方法
laravel框架中视图间共享数据有两种,一种是用视图门面share()方法实现,另一种是用视图门面composer() 方法实现,那么,两种方法的实现究竟是怎样的呢?让我们来看一看接下来的文章内容. ...
- vm ------ 安装
虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台和终端用户之间创建一种环境,而终端用户则是基于这个软件所创建的环境来操作软件. 虚拟机最 ...
- 新安装NODEJS之后配置
1配置阿里镜像服务器 npm config set registry https://registry.npm.taobao.org --global npm config set disturl h ...