windbg + sos 调试w3wp进程内存崩溃问题
1.加载符合文件
C:\symbols;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols;

2.加载sos.dll
.load C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll

3.查看托管堆里面的对象大小
!dumpheap -stat
72a52524     4780     19149568 System.Int64[]
66300224  1404204     22467264 System.ServiceModel.Description.XmlName
01239298     3170     25187084      Free
6f75ac00  1692875     40629000 System.Xml.XmlDictionaryString
72a40d1c    60413     47153628 System.Reflection.Emit.__FixupData[]
66301d38   979563     50937276 System.ServiceModel.Description.MessagePartDescription
6f75b8a8   143024     59241664 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[System.Xml.XmlDictionaryString, System.Runtime.Serialization]][]
72a52ee4   634786     82323112 System.Int32[]
72a53498   154589     83105136 System.Collections.Hashtable+bucket[]
72a24518  2153323     89750416 System.Object[]
72a50d48  4210817    305563628 System.String
72a537b8   526411    309971176 System.Byte[]

4.针对结果集里面的大对象,执行!dumpheap -mt 方法表地址
1984e140 72a537b8   262160     
19892618 72a537b8   131088     
198b2628 72a537b8   131088     
198d2638 72a537b8   131088     
1990f488 72a537b8   131088     
1992f4a8 72a537b8   262160     
1998af48 72a537b8   262160     
199caf68 72a537b8   262160     
19a0af78 72a537b8   131088     
19a2cfb0 72a537b8   262160     
19a6cfc0 72a537b8   262160     
19aacfe0 72a537b8   262160     
19aecff0 72a537b8   131088     
19b0f028 72a537b8   131088     
19b35090 72a537b8   131088     
19b550a0 72a537b8   262160     
上图列出了这类对象里面的单个对象大小。
再对它进行一次过滤,!dumpheap -min 85000 -mt 方法表地址
  Adress   MT          Size
1984e140 72a537b8   262160     
19892618 72a537b8   131088     
198b2628 72a537b8   131088     
198d2638 72a537b8   131088     
1990f488 72a537b8   131088     
1992f4a8 72a537b8   262160     
1998af48 72a537b8   262160     
199caf68 72a537b8   262160     
19a0af78 72a537b8   131088     
19a2cfb0 72a537b8   262160     
19a6cfc0 72a537b8   262160     
19aacfe0 72a537b8   262160     
19aecff0 72a537b8   131088     
19b0f028 72a537b8   131088     
19b35090 72a537b8   131088     
19b550a0 72a537b8   262160     
5.查看大对象的根,!gcroot 1984e140
Note: Roots found on stacks may be false positives. Run "!help gcroot" for
more info.
Scan Thread 7 OSTHread 13d8
Scan Thread 21 OSTHread 10e4
Scan Thread 22 OSTHread 1764
Scan Thread 23 OSTHread 668
Scan Thread 24 OSTHread 10f8
Scan Thread 25 OSTHread 1334
Scan Thread 26 OSTHread 1244
ESP:1c2dfb50: 1c2dfb88 (invalid object)
ESP:1c2dfc28: 1c2dfbec (invalid object)
ESP:1c2dfc2c: 1c2dfbec (invalid object)
ESP:1c2dfc64: 1c2dfbec (invalid object)
Scan Thread 27 OSTHread 1164
Scan Thread 29 OSTHread 14f0
Scan Thread 2 OSTHread a74
Scan Thread 35 OSTHread 8a0
Scan Thread 36 OSTHread 15d8
Scan Thread 37 OSTHread 17f4
Scan Thread 38 OSTHread 162c
Scan Thread 39 OSTHread 120c
Scan Thread 40 OSTHread 930
Scan Thread 41 OSTHread 15bc
Scan Thread 42 OSTHread a54
Scan Thread 44 OSTHread f8
Scan Thread 46 OSTHread 17d4
DOMAIN(01280308):HANDLE(Pinned):d013fc:Root:1206db58(System.Object[])->

6.找到对应代码,检查问题。

转载于:https://www.cnblogs.com/363546828/p/5687619.html

windbg + sos 调试w3wp进程内存崩溃问题相关推荐

  1. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  2. Windbg+sos调试.net笔记

    函数Load断点 记录 sxe ld:clrjit g .loadby sos ld:clrjit !name2ee mscorlib.dll System.Reflection.Assembly.L ...

  3. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )

    文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...

  4. 使用WinDBG调试查看C#内存转储文件

    使用WinDBG调试查看C#内存转储文件 有时候我们想查看一个正在运行的程序内存中的数据,可以在任务管理器将内存状态保存为转储文件,并使用WinDBG验证,这里我们来试试: 0.安装WinDBG 1. ...

  5. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )

    文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...

  6. 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )

    文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...

  7. CLR探索系列:Windbg+SOS动态调试分析托管代码

    http://blog.csdn.net/garyye/article/details/4788070   在使用VS进行托管应用程序的调试的时候,有的时候总感觉有些力不从心.譬如查看一个托管堆或者计 ...

  8. 软件调试系列:软件崩溃篇之内存异常崩溃

    导致崩溃的情况很多,同样崩溃的表现也是千差万别,既然如此,那么还是让我们先来看一下这个崩溃是如何用Windbg分析的吧. 某年某月某日,测试人员报告说,Sample.exe软件崩溃了,两名开发人员小崔 ...

  9. 使用64位任务管理器转储的32位.NET进程dump,WinDbg如何调试

    如果是如题所述的Dump文件. 当使用WinDbg Preview调试时,输入命令!threads,提示如下: 0:000> !threads The version of SOS does n ...

最新文章

  1. c# socket 解决粘包,半包
  2. 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素
  3. hadoop集群环境搭建
  4. 剖析java中的String之__拼接
  5. [jstl] forEach标签使用
  6. c++ string类型转换为char *类型
  7. 如何为SharePoint添加一个简单地SMTP邮件发送服务器?
  8. 如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面
  9. 中兴网络设备交换机路由器查看所有端口光功率命令
  10. Halo-dream 博客小程序
  11. 23种设计模式-多例模式《柒个我》
  12. 告别“浮云” 享用云计算服务优势
  13. 说说汉古中医对新型冠状病毒感染的认识和防治
  14. Repeated measures ANOVA with R
  15. Linux红帽RedHat 8升级更新Firefox火狐浏览器版本方法
  16. JMockit 如何 mock 异常
  17. 深圳软件测试培训:Js中的变量
  18. 基于ssm老街坊网站、购物网站的实现与设计mysql
  19. Springboot整合ES地理位置查询
  20. MediaPlayer播放异常问题

热门文章

  1. 目前电子计算机已经发展到,目前电子计算机已经发展到什么计算机?
  2. mysql optimize 作用_mysql optimize table
  3. 两数之和Python解法
  4. oracle高资源消耗sql,oracle 中如何定位重要(消耗资源多)的SQL
  5. mysql 开启innodb win版本_MySQL安装与启动——Windows系统下
  6. oracle调试死掉,oracle自动死掉了
  7. MySQL登录后显示mariadb_mysql/mariadb学习记录——连接查询(JOIN)
  8. 单手撑跨栏、两个空翻,终于看到了比人厉害的机器人
  9. java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?
  10. FPGA学习之路—Vivado与Modelsim联合仿真