windbg调试.net程序知识快速参考

   最近因团队下一个开发工程师的WPF应用存在偶尔卡顿的现象,重新温习了下windbg的知识,此次记录备忘下,以下是整理的思维导图,有点乱,哈哈。 

   FAQ

   运行!address -summary时,提示错误 ntdll.dll not found

         查过网上不少文章没解决,一直以为是symbol的问题。 后来研究发现,程序是32位的,并运行在64位的win10专业版,并用32位的任务管理器去dump文件导致,正确的做法是用64位的任务管理器去dump,然后用64位的windbg打开。但这里会带来另外一个问题。

.loadby sos clr
The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll) failed, Win32 error 0n193
    "%1 不是有效的 Win32 应用程序。"

      因为.net用的是32位的,而这个dump文件是用64位任务管理器dump的,所以无法加载sos, 正确的解决办法就是,再用32位的管理器去dump,用32位的windbg打开即可解决。所以针对这种特殊情况,要做两次不同的dump, 分别进行分析,前者可以分析unmanaged的, 后者分析managed.

Analyze

请直接看看下面的文章,都写的很全很详细。

参考的文章:

https://www.cnblogs.com/zhenjin-huaxiazongdai/p/17512898.htmlicon-default.png?t=N7T8https://www.cnblogs.com/zhenjin-huaxiazongdai/p/17512898.html

Windows SDK - Windows 应用开发 | Microsoft DeveloperWindows SDK for Windows 11 包含可在创建在 Windows 上运行的应用时使用的标头、库和工具。icon-default.png?t=N7T8https://developer.microsoft.com/zh-cn/windows/downloads/windows-sdk/       记一次 .NET 某游戏服务后端 内存暴涨分析_windbg .net 内存-CSDN博客文章浏览阅读219次。可以仔细想一想,没有被 GC 回收,从侧面也表明它可能刚分配不久,并且是一个局部变量,既然是局部变量,就可以反向找到是哪一个线程分配的,如果线程栈还残留着返回地址信息,就可以反推出是哪一个方法,有了这个思路,接下来就可以动手挖了。按照编码人的习惯,肯定是某一个集合,可以用内存搜索解决。0:000>!从卦中看,果然用的是一个集合,万事开头难,接下来继续反向搜索,如果线程栈还有残留的话,就可以找到它所属的线程栈。0:000>!从卦中的信息来看,它是属于0号线程,如果你不相信的话,可以拿417d1000。_windbg .net 内存https://blog.csdn.net/huangxinchen520/article/details/131700140

    Win Dbg 分析.NET 内存占用情况 - 知乎使用WinDbg可以查看正在运行的进程中未释放的内存。 下载和安装Debugging Tools for Windows。可以从Microsoft官网下载,选择与目标系统版本相匹配的版本。打开WinDbg,并将其附加到目标进程。可以使用“File”菜…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/661170598?utm_id=0

用Windbg来分析.Net程序的dump-腾讯云开发者社区-腾讯云介绍1. 什么是WindbgWinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。WinDbg是微软很重要的诊断调试工具: 可以查看源代码、设置断点、查看变量, 查看调用堆栈及内存情况。Dump文件是进程的内存镜像,...icon-default.png?t=N7T8https://cloud.tencent.com/developer/article/1113533?areaSource=102001.8&traceId=x75ve9MZcSMAHWxGHdwxM     https://www.cnblogs.com/tianqing/p/13197382.htmlicon-default.png?t=N7T8https://www.cnblogs.com/tianqing/p/13197382.html

       WinDbg排查.net性能或内存问题步骤简述_memoscope.net-CSDN博客文章浏览阅读2.6k次。安装步骤:第一步当然是安装了,需要注意的是,千万不要搜索 windbg 然后下载,搜索到的windbg安装文件,都不是我们想要的,真正的windbg,实际上是在微软的SDK里,下载链接在这里:https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk点击这个网页里的 DOWNLOAD THE .ISO,文件..._memoscope.nethttps://blog.csdn.net/youbl/article/details/88893182

     

      https://www.cnblogs.com/hzwanglw/p/13285499.htmlicon-default.png?t=N7T8https://www.cnblogs.com/hzwanglw/p/13285499.html

     WinDbg 入门三:调试Dump,爆内存的问题-.net程序调试-少有人走的路WinDbg 入门三:调试Dump,爆内存的问题是少有人走的路中一篇关于的文章,欢迎您阅读和评论,少有人走的路icon-default.png?t=N7T8http://www.skcircle.com/?id=1876

      记一次 .NET 医院CIS系统 内存溢出分析_c# iis项目内存溢出排查方法-CSDN博客文章浏览阅读247次。一:背景1. 讲故事前几天有位朋友加wx求助说他的程序最近总是出现内存溢出,很崩溃,如下图:和这位朋友聊下来,发现他也是搞医疗的,哈哈,.NET 在医疗方面还是很有市场的????????????,不过对于内存方面出的问题,我得先祈祷一下千万不要是非托管。。。废话不多说,上 windbg,看能不能先救个急。二: windbg 分析1. 找出异常对象如果内存溢出了,大家应该知道 C# 会抛一个 OutOfMemoryException 异常,而且还会附加到那个执行线程上,所以先用 !t 命令调出_c# iis项目内存溢出排查方法https://blog.csdn.net/huangxinchen520/article/details/116517869?spm=1001.2014.3001.5502

     Where's your leak at? [Using WinDbg, SOS, and GCRoot to diagnose a .NET memory leak] - The blog of dlaa.meWhere's your leak at? [Using WinDbg, SOS, and GCRoot to diagnose a .NET memory leak]icon-default.png?t=N7T8https://dlaa.me/blog/post/9471347

      .net - Use Windbg to quickly analyze application memory leaks - 个人文章 - SegmentFault 思否Windbg program debugging is a necessary skill for advanced development of .NET. It analyzes memory leaks, analyzes high CPU usage, analyzes thread ...icon-default.png?t=N7T8https://segmentfault.com/a/1190000041008324/en

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2815315.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

雾锁王国Enshrouded服务器CPU内存配置怎么选择?

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

LightDB24.1 lt_package系统表字段 pkgboby一行长度限制为8160

背景 oracle plsql支持创建package和package boby,且支持的长度超过postgres所限定的8192个字节的长度(实际上postgres出去元组头部分所占的空间,长度肯定是小于8192字节的)。目前遇到的情况就是oracle环境下包的长度远远大于Li…

打卡今天内存管理

首先我们的体系结构是这样的,根据小林coding 来写的笔记 寄存器,速度非常快, 32位的可以存4个字节,64位的可以存8个字节 多少位只是在32位以上 地址空间 分为两种地址空间 : 物理,逻辑 地址空间 地址空间…

选择排序,冒泡排序,插入排序,快速排序及其优化

目录 1 选择排序 1.1 原理 1.2 具体步骤 1.3 代码实现 1.4 优化 2 冒泡排序 2.1 原理 2.2 具体步骤 2.3 代码实现 2.4 优化 3 插入排序 3.1 原理 3.2 具体步骤 3.3 代码实现 3.4 优化 4. 快速排序 4.1 原理 4.2 具体步骤 4.3 代码实现 4.4 优化 为了讲…

源码和包管理器安装U-Boot tools

源码和包管理器安装U-Boot tools U-Boot(Universal Bootloader)是一个开源的嵌入式系统引导加载程序,用于引导嵌入式系统,如单板计算机、嵌入式开发板等。U-Boot 提供了一种灵活的引导解决方案,支持多种处理器架构和嵌…

使用pyannote-audio实现声纹分割聚类

使用pyannote-audio实现声纹分割聚类 1 简单介绍 pyannote.audio是用Python编写的用于声纹分割聚类的开源工具包。在PyTorch机器学习基础上,不仅可以借助性能优越的预训练模型和管道实现声纹分割聚类,还可以进一步微调模型。 它的主要功能有以下几个&…

ISP代理是什么?跨境账号养号为什么要选择它?

在跨境出海业务中,代理IP对于您的在线任务至关重要,尤其是对于那些运行多个帐户的人来说。为您的帐户选择正确类型的代理对于确保帐户安全非常重要,劣质的IP容易使账号遭受封号风险。IPFoxy的多种代理IP类型应用范围各有侧重,其中…

【GO开发工程师】grpc进阶#golang

【GO开发工程师】grpc进阶#golang 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】grpc进阶#golang1、protobuf2、grpc2.1、gRPC 的 Metadata机制2.2、grpc拦截器 1、protobuf syntax "proto3"; // 指定使用的 protobuf 版本为 proto3 import…

vue-router4 (六) 命名视图

命名视图可以使得同一级(同一个组件)中展示更多的路由视图,而不是嵌套显示, 命名视图可以让一个组件中具有多个路由渲染出口,这对于一些特定的布局组件非常有用。 应用场景: 比如点击login切换到组件A&am…

Random,随机函数

黑马程序员学习笔记 nextInt(n): 只生成0~(n-1)之间的数字,不包括n 主要代码就三个; package com.zhang.random;import java.util.Random;public class RandomDemo1 {public static void main(String[] args) {//目标:掌握使用Random生成随…

进制转换md5绕过 [安洵杯 2019]easy_web1

打开题目 在查看url的时候得到了一串类似编码的东西,源码那里也是一堆base64,但是转换成图片就是网页上我们看见的那个表情包 ?imgTXpVek5UTTFNbVUzTURabE5qYz0&cmd 我们可以先试把前面的img那串解码了 解码的时候发现长度不够,那我们…

算法沉淀——动态规划之子序列问题(下)(leetcode真题剖析)

算法沉淀——动态规划之子序列问题 01.最长定差子序列02.最长的斐波那契子序列的长度03.最长等差数列04.等差数列划分 II - 子序列 01.最长定差子序列 题目链接:https://leetcode.cn/problems/longest-arithmetic-subsequence-of-given-difference/ 给你一个整数数…

springboot+vue实现oss文件存储

前提oss准备工作 进入阿里云官网:阿里云oss官网 注册 搜OSS,点击“对象存储OSS” 第一次进入需要开通,直接点击立即开通,到右上角AccessKey管理中创建AccessKey,并且记住自己的accessKeyId和accessKeySecret&#…

【数据结构与算法】回溯法解题20240229

【数据结构与算法】回溯法解题20240229 一、46. 全排列1、以[1,2,3]为例,抽象成树形结构2、回溯三部曲 二、LCR 084. 全排列 II1、以[1,1,2]为例,抽象成树形结构 三、面试题 08.07. 无重复字符串的排列组合四、面试题 08.08. 有重复字符串的排列组合 一、…

Java面试资料集合,只需一篇文章吃透Java多线程技术

前言 受到疫情影响我从过完年一直呆在家里,索性学点知识方便以后跳槽涨薪,于是从二月份开始学习阿里P8架构师纯手打的一份Java面经手册,没想到5月初我成功从我们三线的一个小公司跳槽进了腾讯,虽然等级不高,但是涨薪还…

【力扣hot100】刷题笔记Day15

前言 今天要刷的是图论,还没学过,先看看《代码随想录》这部分的基础 深搜DFS理论基础 深搜三部曲 确认递归函数、参数确认终止条件处理目前搜索节点出发的路径 代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择:本节点…

Git教程-Git的基本使用

Git是一个强大的分布式版本控制系统,它不仅用于跟踪代码的变化,还能够协调多个开发者之间的工作。在软件开发过程中,Git被广泛应用于协作开发、版本管理和代码追踪等方面。以下是一个详细的Git教程,我们将深入探讨Git的基本概念和…

npm ERR! code ERESOLVE

1、问题概述? 执行npm install命令的时候报错如下: tangxiaochuntangxiaochundeMacBook-Pro stf % npm install npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resol…

C++ Primer 总结索引 | 第八章:IO库

1、IO类 1、已经使用过的IO类型和对象 都是 操纵char数据的。默认情况下,这些对象 都是关联到 用户的控制台窗口的 但是 不能仅从控制台窗口 进行IO操作,应用程序 需要 读写命名文件,使用IO操作 处理string中的字符 会很方便,此…

Netty入门指南:从零开始的异步网络通信

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Netty入门指南:从零开始的异步网络通信 前言Netty简介由来:发展历程:异步、事件驱动的编程模型: 核心组件解析通信协议高性能特性异步编程范式性能优化与…