分析dump】的更多相关文章

原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中,尤其是吃大内存的JVM,一旦出现内存泄露等问题是非常容易引发OutofMemory的,如果没有一个好的工具提供给开发人员定位问题和分析问题,那么这将会是一场噩梦.目前JDK其实自带有一些内存泄露分析工具专门用于帮助开发人员定位内存泄露等问题,但是这些工具往往并不是能够满足一些现状,这里笔者所指的现状更多是…
概述: 注册生成dump文件的函数. 当程序收到没有捕获的异常时,调用上述函数,生成dump文件. 利用Windbg结合编译程序时生成的pdb和代码来分析dump文件,定位问题. 如下代码生成dump文件(转): #include <Windows.h> #include <stdio.h> #include <DbgHelp.h> #pragma comment(lib, "dbghelp.lib") inline BOOL IsDataSecti…
1. 如何生成dump文件?     原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件:                SetUnhandledExceptionFilter:https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=EN-US&k=k(SETUNHANDLEDEXCEPTIONFILTER);k(DevLa…
记录下自己使用WinDbg分析Dump时常用的一些方法和命令 !analyze -v //找出出错的堆 .exrc //找到程序崩溃的位置 !heap //打印出错函数的局部位置 !for_each_frame dv /t //显示call stack内容 ~*kbn //显示所有线程信息 ~线程号 s //切换线程 kbn //显示当前线程信息 .reload //加载符号信息 !runaway //查看19号线程所用时间 .load wow64exts !sw //切换到64位 定位Unha…
目录 OOM异常--intsmaze 正确姿势dump文件分析--intsmaze 正确的姿势--intsmaze dump丢失打印--intsmaze 哪些内存溢出会产生dump文件--intsmaze 应用程序出现OOM异常,你是否仍然通过看日志的方式去排查问题(该方式定位解决问题是大概率的巧合而已)?正确的排查方案是进行dump文件分析,你知道为什么吗? OOM异常--intsmaze 首先说一下,本人在开发中遇到的OOM异常基本也是通过看log日志去定位的(很多OOM异常是因为出现死循环…
java Dump文件分析 前言 dump文件是java虚拟机内存在某一时间点的快照文件,一般是.hprof文件,下面自己模拟一下本地内存溢出,生成dump文件,然后通过mat工具分析的过程. 配置虚拟机参数 要想本地模拟oom异常,那么建议将堆内存设置的小一点,那样容易触发 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录} -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError表示jvm发生oo…
最近系统是不是CPU会飙升的百分之九十多甚至百分百,在本地又很难复现问题,无法定位问题出现在哪. 可以用转储文件来保存现场,然后通过分析dump文件可以大概分析出问题的所在 生成转存文件 在CPU飙升时打开任务管理器,找到对应的进程(IIS Worker Process),右键然后点击创建转储文件 使用Visual Studio打开dump文件 选择要分析的.dmp文件,右键使用vs执行 分析dump文件 可参考微软官方文档:https://docs.microsoft.com/zh-cn/vi…
1.生成dump文件. 在代码捕获异常,并将异常写入dump文件. #include "stdafx.h" #include <Windows.h> #include <iostream> #include <DbgHelp.h> #include <tchar.h> using namespace std; #pragma comment(lib, "dbghelp.lib") LONG WINAPI TopLeve…
jhat简介 jhat用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言 这个工具并不是想用于应用系统中而是用于"离线"分析. 把本机的java内存映像导出到heap.dmp中,其中PID为java进程的ID号. jmap -dump:live,format=b,file=heap.dmp PID 导出后的映像文件可以用jhat来进行分析,-J是向java虚拟机传一个参数,如-mx768m是指定虚拟机可用最大的内存为768M…
步骤一: 生成dump文件. #include <Windows.h> #include <iostream> #include <DbgHelp.h> #include <tchar.h> using namespace std; #pragma comment(lib, "dbghelp.lib") LONG WINAPI TopLevelExceptionFilter(struct _EXCEPTION_POINTERS *pExc…
直接上图了 上图三个错误最近频繁出现,出现一次iis就奔溃一次,抓取的dump分析后如下: Couldn't resolve error at 'ls' :> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ***********************************************…
查看整个JVM内存状态 jmap -heap [pid]要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起 查看JVM堆中对象详细占用情况jmap -histo [pid] 只打印活跃对象 jmap -histo[:live] <pid> 导出整个JVM 中内存信息 dump堆 当OLD区域占用大于90%的时候dump下来用MemoryAnalyzer分析用jmap -dump:live,format=b,file=tai.dump pidjmap…
转载:http://blog.csdn.net/kevin_luan/article/details/8447896 http://liulinxia02.blog.163.com/blog/static/26868772009111861834942/ http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/ 其中jmap是java自带的工具 查看整个JVM内存状态 jmap -heap [pid]要注意的…
一.使用jmap工具生成dump文件 二.MAT工具的下载和安装 三.使用MAT工具进行内存泄露分析  -- Step 1 :  ps –ef | grep <process> (which is Batch server here) Step 2 : Note down the PID of it. Step 3: Go to Jdk path /opt/jdk/ 1.8.0_71l64/bin – whichever available in the server. Step 4: Run…
前段时间线上服务经常发生卡顿,经过排查发现是大对象引起的Fullgc问题,特此记录排查逻辑. 目录 目的 一.获得服务进程 二.生成dump文件 三.下载mat工具 四.使用mat工具导入第二步生成的dump文件 五.导入后得到如下界面 六.定位大对象(方法一) 七.定位大对象(方法二) 目的 定位产生大对象的代码 一.获得服务进程 jps -l 27885\32474 对应的即为运行的Jar ps:也可使用netstat -lnput|grep 启动端口号 等方式查找 二.生成dump文件 j…
3 .dump 线上文件栈 [root@yszyz10a153 ~]# jmap -dump:live,format=b,file=heap201712.hropf  72947 参考:https://www.jianshu.com/p/3479f043bc68…
文章:WinDbg-如何抓取dump文件 命令: cd C:\Windows\System32\inetsrv appcmd list wp 可以查看各个站点的pid…
一,建立测试环境 01,一个oracle数据库环境 02,具体数据库实验环境配置 SQL> create user test1 identified by kingle; User created. SQL> grant dba to test1; Grant succeeded. SQL> create tablespace ttt1 datafile '/u01/app/oracle/oradata/oracle01/test101.dbf' size 10M; Tablespace…
windbg简介 Windbg是在windows平台下,强大的用户态和内核态调试工具.相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大.它的另外一个用途是可以用来分析dump数据.哈哈,这是我们最需要的,可以用来分析并发测试场景或生产环境的性能及稳定性问题.它能够通过dump文件轻松的定位到问题根源,学会使用它,将有效提升我们的问题解决能力和效率. windbg版本和符合表 不同版本的程序需要对应版本的抓取工具及…
将dump拖入到windbg中后,在command输入栏输入 .load wow64exts 回车 !sw 回车,就将windbg的dump,从64位模式切换到了32位模式,否则看到的call stack 对我们分析dump是没有帮助的.然后就可以使用其它的命令来分析了.比如:使用kb命令,查看所有线程的调用堆栈,找出出错的线程,~*kb,就是查看所有线程的调用堆栈. http://www.cnblogs.com/suiyingjie/archive/2012/12/07/2807504.htm…
介绍 1. 什么是Windbg WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微软很重要的诊断调试工具: 可以查看源代码.设置断点.查看变量, 查看调用堆栈及内存情况. Dump文件是进程的内存镜像, 可以把程序的执行状态通过调试器保存到dump文件中 2. Windbg可以解决以下问题 ◆ 内存高 ◆ CPU高 ◆ 程序异常 ◆ 程序Hang死 3. 使用windbg进行调试…
原文地址:http://www.javatang.com JVM Heap Dump(堆转储文件)的生成 正如Thread Dump文件记录了当时JVM中线程运行的情况一样,Heap Dump记录了JVM中堆内存运行的情况.可以通过以下几种方式生成Heap Dump文件: 使用 jmap 命令生成 jmap 命令是JDK提供的用于生成堆内存信息的工具,可以执行下面的命令生成Heap Dump: jmap -dump:live,format=b,file=heap-dump.bin <pid>…
最近在生产环境遇到一个问题,正常情况下,ECS CPU始终保持在10%以下,内存也只占用40%左右,但是连续2天出现了CPU占用100%的情况,然后系统卡住.看阿里云的ECS监控,能看到CPU飙到了100%. 再去查日志,发现了有内存溢出的错误GC overhead limit exceeded 这个异常是GC在尝试多次回收后,都回收了不到2%才抛出.一直尝试回收,却一直回收不到2%形成了恶性循环,导致CPU也飙到100%.可以肯定的是一定触发了什么操作才导致这种情况的发生.但是日志当中又看不到…
摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM dump java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢?我们一步一步来 获取JVM dump文件 获取dump文件的方式分为主动和被动 i.主动方式:1.利用jm…
一.背景 今天下午,正酣畅淋漓的搬砖,突然运维同事在群里通知,核心服务某个节点内存异常,服务假死.神经一下子紧张起来,赶紧跑到运维那边观察现象. 观察的结果是服务内存溢出,该服务是核心服务,分配了5G内存.运维在转存快照后,立刻重启服务后正常.在接下来的一段时间里,另一台服务节点也发生了同样的情况. 二.分析过程 这个服务是另外一个同事负责开发的,本着学习的态度,在拿到运维转存的dump文件后,就准备尝试着分析下问题,由于之前没有类似的经历,于是先在网上查了下一般怎么分析类似的问题. 首先尝试使…
Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windbg可以做内核态调试 Windbg可以脱离源代码进行调试 Windbg可以用来分析dump文件 Windbg支持丰富的调试扩展 以下是一些windbg安装和使用相关的文档, Installing and Configuring WinDbg (Windows Debug Tools)‏ Windbg Tutorials Debugging Using Windbg (msdn) Win…
问题背景说明:客户的生产环境不定时发生崩溃,需要定位崩溃的原因.在开发环境不能重现该问题,准备抓取IIS的dump文件分析 第一步:在客户的生产环境抓取dump文件 参考:IIS崩溃时自动抓取Dump 等IIS崩溃时,会自动转存dump文件 第二步:分析dump文件 2.1  选择在那个环境分析dump文件 一般可以选择在生产环境分析dump文件,(如果开发环境有符号表文件,也可以把dump文件拷贝到开发环境分析) 2.2 安装windbg 参考:wndbg下载与安装 2.2 选择dump文件…
在博客堂的不是我舍不得 - High CPU in GC(都是+=惹的祸,为啥不用StringBuilder呢?). 不是我舍不得 - .NET里面的Out Of Memory 看到很多人在问如何分析dump,所以就写下了这篇短文,抛砖引玉. 一.安装 DebuggingToolsforWindows: 从以下 Microsoft 网站下载 DebuggingToolsforWindows:http://www.microsoft.com/whdc/devtools/debugging/inst…
在定位一线问题时经常碰测试中出现Out Of Memory的问题, 通过jmap查看,发现JVM heap全用满了.有很多工具可以查看JVM堆的信息, 收费的比如JProfiler, YourKit,免费的如Oracle JDK自带的visualvm, jhat和Eclipse MAT.这个应用安装在一台AWS上,没有图形界面, 内存也比较小,想通过VNC远程桌面启动visualvm或者MAT不可能,通过jhat分析dump出来的snapshot(大约4.3G)也很慢,半天没有分析完毕,这种办法…
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件.使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置.本文将讨论以下内容: 1.  程序编译选项 2.  利用VS2005 分析dump文件 3.  常见问题讨论 一.       程序编译选项 PDB files contains all debug information like type definition and function prototype. When applicat…