首页 > 系统相关 >Windbg下使用dump分析内存溢出

Windbg下使用dump分析内存溢出

时间:2023-02-02 16:14:28浏览次数:52  
标签:string dump 内存 GC details dumpheap Windbg

分析简述

 创建dump文件;通过 !address -summary 和 !eeheap -gc 判断是否为内存泄漏;通过!dumpheap -stat观察出问题的类型;通过!dumpheap -mt MT号 -min xxx 来索引该类型下占用较高的数据;

再通过!gcroot GC根来查看该根被哪些所引用;

1.创建dump的方式可以在任务管理器中,在对应的进程下右击,选择创建转储文件

2.打开Windbg程序,选择Open Source File,选择刚刚的dump文件

3.在命令行输入!dumpheap -stat,可以查看当前所有托管类型的统计信息,包括它们的内存占用情况

 

4.从上图可以看到String和XML是占用内存最大的两个类型,我们接着使用!dumpheap -mt 00007ffaa50cd698 -min 300    命令检索对应MT中300byte以上的string

5.可以看出没有特别占用内存的string存在,但可以看看每个string下具体都存储的什么字符串

   使用!do 000001b45c201080,即!do GC根,可使用!gcroot GC根查看该变量的引用情况,而如果gcroot出来没有引用根,即Found 0 unique roots (run '!GCRoot -all' to see all roots).则考虑是否是因为死线程的原因造成的。

 参考文献:

https://blog.csdn.net/mzl87/article/details/127670331

https://blog.csdn.net/xdpcxq/article/details/128219304

 

https://blog.csdn.net/biyusr/article/details/125904480

标签:string,dump,内存,GC,details,dumpheap,Windbg
From: https://www.cnblogs.com/M-MAKI/p/17085360.html

相关文章

  • IOS逆向--恢复Dyld的内存加载方式
    之前我们一直在使用由dyld及其NSCreateObjectFileImage FromMemory/NSLinkModuleAPI方法所提供的Mach-O捆绑包的内存加载方式。虽然这些方法我们今天仍然还在使......
  • gbase资源组修改内存
    1)登录数据集市数据库gccli-ugbase-ppwd 2)查看有哪些数据库showdatabases; 3)选择数据库usegbase; 4)查看现有的资源池名与分配的内存量(单位是b)selectresou......
  • Viewing the Call Stack in WinDbg
    ViewingtheCallStackinWinDbgThecallstackisthechainoffunctioncallsthathaveledtothecurrentlocationoftheprogramcounter.Thetopfunctiono......
  • mysqldump 与 mysqlpump
    简介:mysqldump与mysqlpump都是mysql自带的备份工具。mysqlpump是mysqldump的一个衍生,本身也参考了mydumper的思路,支持了并行导出数据,因此导出数据的效率比mysqldu......
  • windbg finalizequeue
    Pickafewandfindoutwheretheyarerooted(i.e.whytheycan’tbecollected)Note:Youmaywanttotryacoupledifferentones.!gcroot<addressofcha......
  • 在Runtime下,IL2CPP与Mono打包对应的PSS内存占用问题
    1)在Runtime下,IL2CPP与Mono打包对应的PSS内存占用问题​2)获得AssetBundle内部依赖关系的方法3)Unity2019StreamingMipmap在某些情况下采样等级错误4)根据RenderDoc的数据,计......
  • C++ malloc下申请内存途径
    之前就因为glibc的free不一定会将内存归还OS,导致OOM,造成了上千万损失,当时心态差点崩了五年前的时候,因为OOM导致进程无故被kill掉,也没有coredump,分析了好久,最后发现是因为......
  • mysql-mysqldump命令详解
    注意:备份加入--databases备份文件中会有创建数据库的语句,否则没有建议:导出库加入、导出表不加此参数一、mysqldump命令备份Mysql数据库的参数说明在用mysqldump备份使用......
  • df -T 和 du 统计的内存不一致
    1、问题原因客户反馈,df-T查看到挂载到flash文件的emmc使用了6G左右,但是在flash下看到du-h只用了2G左右,客户疑问,还有4G去哪儿了?2、问题怀疑方向1、怀疑启动阶段emmc......
  • linux服务器运行java项目, 监控查看内存、储存空间和cpu占用率
    服务器部署方式为tomcat中运行war包的方式,有一次重新部署时候发现报异常堆栈溢出了.想要定位到某个war包中通过学习整理出此篇文章以作记录笔记.1.关于内存过高......