windbg + sos 调试w3wp进程内存崩溃问题
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进程内存崩溃问题相关推荐
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- Windbg+sos调试.net笔记
函数Load断点 记录 sxe ld:clrjit g .loadby sos ld:clrjit !name2ee mscorlib.dll System.Reflection.Assembly.L ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
文章目录 一.使用 IDA 分析要修改的内存特征 二.根据内存特征搜索修改点 三.修改进程内存 一.使用 IDA 分析要修改的内存特征 在前的博客 [Android 逆向]逆向修改游戏应用 ( 分析应 ...
- 使用WinDBG调试查看C#内存转储文件
使用WinDBG调试查看C#内存转储文件 有时候我们想查看一个正在运行的程序内存中的数据,可以在任务管理器将内存状态保存为转储文件,并使用WinDBG验证,这里我们来试试: 0.安装WinDBG 1. ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
文章目录 一.Android 命令行中获取要调试的应用进程的 PID 二.进程注入调试进程内存的 so 库 一.Android 命令行中获取要调试的应用进程的 PID 前置博客 [Android 逆向 ...
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )
文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...
- CLR探索系列:Windbg+SOS动态调试分析托管代码
http://blog.csdn.net/garyye/article/details/4788070 在使用VS进行托管应用程序的调试的时候,有的时候总感觉有些力不从心.譬如查看一个托管堆或者计 ...
- 软件调试系列:软件崩溃篇之内存异常崩溃
导致崩溃的情况很多,同样崩溃的表现也是千差万别,既然如此,那么还是让我们先来看一下这个崩溃是如何用Windbg分析的吧. 某年某月某日,测试人员报告说,Sample.exe软件崩溃了,两名开发人员小崔 ...
- 使用64位任务管理器转储的32位.NET进程dump,WinDbg如何调试
如果是如题所述的Dump文件. 当使用WinDbg Preview调试时,输入命令!threads,提示如下: 0:000> !threads The version of SOS does n ...
最新文章
- c# socket 解决粘包,半包
- 从C语言的角度重构数据结构系列(七)-数据结构堆知识求解数据流中的第K大元素
- hadoop集群环境搭建
- 剖析java中的String之__拼接
- [jstl] forEach标签使用
- c++ string类型转换为char *类型
- 如何为SharePoint添加一个简单地SMTP邮件发送服务器?
- 如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面
- 中兴网络设备交换机路由器查看所有端口光功率命令
- Halo-dream 博客小程序
- 23种设计模式-多例模式《柒个我》
- 告别“浮云” 享用云计算服务优势
- 说说汉古中医对新型冠状病毒感染的认识和防治
- Repeated measures ANOVA with R
- Linux红帽RedHat 8升级更新Firefox火狐浏览器版本方法
- JMockit 如何 mock 异常
- 深圳软件测试培训:Js中的变量
- 基于ssm老街坊网站、购物网站的实现与设计mysql
- Springboot整合ES地理位置查询
- MediaPlayer播放异常问题
热门文章
- 目前电子计算机已经发展到,目前电子计算机已经发展到什么计算机?
- mysql optimize 作用_mysql optimize table
- 两数之和Python解法
- oracle高资源消耗sql,oracle 中如何定位重要(消耗资源多)的SQL
- mysql 开启innodb win版本_MySQL安装与启动——Windows系统下
- oracle调试死掉,oracle自动死掉了
- MySQL登录后显示mariadb_mysql/mariadb学习记录——连接查询(JOIN)
- 单手撑跨栏、两个空翻,终于看到了比人厉害的机器人
- java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?
- FPGA学习之路—Vivado与Modelsim联合仿真