服务器上如果出现cpu内存饱满,找不到原因,那么dump文件分析必不可少。

起初是想在linux下调试.net core 的dump,但是环境一直无法安装 搞了许久没搞出来,其次文章太少了,google几页都变紫色了,园友大佬知道可以给小弟解惑下几个问题。

  1. Linux分析高版本的.net core必须是要lldb3.9.0 这个就很烦了。我的linux的centos7.4。没有现成的可以下载,只能自己编译。编译数小时最终发现并没有安装成功,大佬们有没有脚本能直接安装lldb3.9.0。开始都是按照https://www.cnblogs.com/calvinK/p/9263696.html 文章来,结果失败了,没有报错。也感谢这个博主帮助了解决不少问题。
  2. .net core console可以创建dump文件,但是asp.net core 无法创建dump文件,官方issue:https://github.com/dotnet/coreclr/issues/21484。 官方解决后,合并到了release 2.2. 也就是说我自己还要编译corelcr。而这个coreclr编译也需要特定版本基本也是3.9.0 https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md

Windows下.net core dump分析

  1. 下载工具windbg 地址:https://www.microsoft.com/zh-cn/p/windbg-preview/9pgjgd53tn86?SilentAuth=1&rtc=1&activetab=pivot:overviewtab
  2. Dump文件:任务管理;选择w3wp.exe;右键;创建转储文件 这里项目用core的一个console项目举例 代码如下

  3. 用windbg打开dump文件
  4. 加载.net core版的sos扩展插件。输入:.load C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.2.1\sos

    注意:framework和.net core都有提供相应版本的sos.dll,在load加载到windbg的时候请选择正确的地址,这里加载进去时2.2.1版本。

    插件介绍:https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension

  5. 加载完毕使用!help 查看是否加载成功,并查看命令介绍

  6. 查找线程 !threads

  7. 指定线程 ~{线程编号}s 例如22号线程:~22s 。 查找该线程的堆栈信息 !clrstack

  8. 利用!dumpheap 查找所有gc中所有的对象占用内存的大小并且排序。 (可以利用!help dumpheap 查看相关介绍)

  9. 利用 !dumpheap -min 85000 查看LOH对象来判断内存泄漏的对象 LOH 对象介绍:https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/large-object-heap

    这里测试项目没有该对象

  10. 利用!dumpheap -strings 来查看指定对象在应用中的使用 这里用string 举例

  11. 利用!dumpheap -type Console 查看指定类型 在应用中的使用 这里用console举例

  12. 利用!do {线程编号}来查看该改对象在这个线程中的使用

    还有很多的命令,再补充

.net core dump分析的更多相关文章

  1. 记一次Java Core Dump分析过程

    #背景提要 很久没有亲自动手部署代码了,命令行的亲切感越来越低.放飞了键盘,习惯了鼠标操作的windows环境.冷不丁实操部署也是不错的. 常常在部署时,运维同学对于[hs_err_pid]文件视而不 ...

  2. Java core dump

    目录 生成Java core dump core dump分析 生成Java core dump 可以按照下面这个文章的指引来通过jni调用触发Java core dump Generating a ...

  3. 使用GDB 追踪依赖poco的so程序,core dump文件分析.

    前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...

  4. linux core dump 文件 gdb分析

    core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (linux中如果内存越界会收到SIG ...

  5. core dump文件分析和调试

    core介绍 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成"核心转储").我们可以认 ...

  6. Linux gdb分析core dump文件

    文章目录1. coredump1.1 coredump简介1.2 coredump的文件存储路径1.3 coredump产生的条件1.4 coredump产生原因2. 测试生成coredump1. c ...

  7. Linux上Core Dump文件的形成和分析

    原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...

  8. linux下core dump【总结】

    1.前言 一直在从事linux下后台开发,经常与core文件打交道.还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志.我不知所措,同事叫我看看core,我却问什么是core,怎么看. ...

  9. 什么是core dump linux下用core和gdb查询出现"段错误"的地方

    什么是core dump   linux下用core和gdb查询出现"段错误"的地方 http://blog.chinaunix.net/uid-26833883-id-31932 ...

随机推荐

  1. mr微博内容推荐

        第一次迭代 1 package com.laoxiao.mr.weibo; import java.io.StringReader; import org.apache.commons.lan ...

  2. django添加控件

    function bindRemoveCls() { $('#removeCls').click(function () { var options = $('#sel')[0].selectedOp ...

  3. keepalived高可用简介与配置

    keepalived简介 keepalived介绍 Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP ...

  4. 信息在DNN马尔科夫链结构上的变化

    一个经典的全连接神经网络,如下图所示,输入层可以看做T0,输出层可以看做$\hat{\mathrm{Y}}$=TL+1. 考虑每一层隐藏层T与X.Y的交互信息:I(X; Ti), I(Ti, Y),交 ...

  5. MongoDB学习记录(二) - MongoDB的"增查改删"操作之"增"

    如果做插入文档操作的集合不存在,那么集合将被创建 db.collection.insertOne() insertOne为collection插入一条文档,如果文档的_id字段未指定,MongoDB会 ...

  6. java多线程中注入Spring对象问题

    web应用中java多线程并发处理业务时,容易抛出NullPointerException. 原因: 线程中的Spring Bean没有被注入.web容器在启动时,没有提前将线程中的bean注入,在线 ...

  7. U3D一些使用

    1,UGUI Button同时监听点击事件和长按事件:https://blog.csdn.net/yye4520/article/details/80844870

  8. 安装jdk+tomcat

     linux安装高版本jdk后不起作用的解决办法 1.安装jdk1.8. 2.修改/etc/profile中的JAVA_HOME为新的jdk路径,并执行source /etc/profile. 3.执 ...

  9. pdf流文件的展示、下载、打印;html转为pdf

    背景:合同(后台返回pdf流文件)展示.下载.打印,基于angular4 场景区分: 1.checkout页面 —— post接口,入参为offering.shippingInfo.invoice等( ...

  10. Cbv源码简单分析图

    重点:cbv源码的简单分析(有后续)