Widows 分析dump文件的工具太多了,而且都是傻瓜式的点点就好了。...但是生产上分析dump文件的话,还是linux工具比较方便,因为生产上的dump文件一般都至少是GB级别的,这么大的文件拷贝到本机要耗费很长时间,特别是遇到生产事故的时候,时间=金钱。...那么linux有什么好的解析dump工具呢? 如何解析 java dump的文件? 这里比较推荐IBM的eclipse的MAT工具。...dump文件大小来的,如果dump文件是5GB那么 这里最好配>5GB 否则会报MAT内存不足的异常 ## 修改MemoryAnalyzer.ini 的 -Xmx6024m vi MemoryAnalyzer.ini...就可以选择加载dump文件了
由于服务器限制下载文件大小为50M,dump出来的文件一般都比较大。就算能下载,传输几十G文件效率比较慢。...所以使用Linux MAT工具先将文件分析完生成html文件,只有几百K,然后下载到本地用浏览器打开分析。 dump堆 首先使用下面命令找到服务的pid: jps -l 然后dump出此服务的堆。...jmap -dump:format=b,file=hummer.dump PID format=b,表示以字节的形式。文件名为hummer.dump。...-1.9.0.20190605-linux.gtk.x86_64.zip 修改MAT的内存大小大于dump出来的文件大小 vi MemoryAnalyzer.ini MAT分析 dump ....把这三个文件下载到本地用浏览器打开,这三个文件很小,只有几百K。
通常,Linux 中如果内存越界会收到 SIGSEGV 信号,然后就会进行 Core Dump 相关操作。...在我们大部分人的认知中,潜意识地认为 Core Dump 是针对 Linux 内存快照。...在基于 Linux 系统,应用程序发生异常时,会产生 Core Dump 文件记录,这些异常或多或少甚至几乎都与“内存”脱不了干系,总结起来主要涉及以下: 1、堆栈溢出问题 通常来讲,...,文件大小无限制 通常,在大多数环境下,在 Core 生成开启的情况下,Linux 的应用程序在异常崩溃时一定会产生 Core Dump 文件,当 Core Dump 文件超过限定的大小时,文件将不生成...在类 Linux 系统下,Core Dump 文件本身主要的格式也是 ELF ,因此,我们可以通过 readelf 命令进行判断,具体如下所示: [administrator@JavaLangOutOfMemory
于是就需要保存崩溃时的dump信息了。 下面是关于如何生成dmp文件的代码。...头文件 #pragma once #include #include #include #include #pragma...DisableSetUnhandledExceptionFilter();// 此函数一旦成功调用,之后对 SetUnhandledExceptionFilter 的调用将无效 void InitMinDump(); } 源文件...FrameworkMiniDump::InitMinDump(); ...... } 调用一下InitMinDump就可以了,这里面会注册一个回调,崩溃时会保存的dmp文件。...保存下来的dmp文件,需要结合pdb文件和源代码才能定位到哪里崩溃了。具体的我也不懂。
select heap.findObject("0x6d1029358") 点开可以看到我们静态的属性 更多的使用方法,建议还是参考官网或其他现成使用案例; 最后 通过OQL方式来查询dump...文件中内存里面的对象或属性,通过该方式可以快速查询,需要将文件下载到本地来进行分析的场景是比较常用,部分JVM分析工具,图形化界面也是通过基于该语法进行集成。
JAVA Thread Dump 文件分析 Thread Dump介绍 Thread Dump是非常有用的诊断Java应用问题的工具。...文件分为2个部分来理解 拿我们的例子来说: //头部信息 包含 当前时间 jvm信息 2021-01-14 17:00:51 Full thread dump Java HotSpot(TM) 64...runnable 一般指该线程正在执行状态中,该线程占用了资源,正在处理某个操作,如通过SQL语句查询数据库、对某个文件进行写入等。...我们在程序跑起来之后大概10秒时候导出thread dump日志文件信息,此时: "线程1" #12 prio=5 os_prio=0 tid=0x00007f420024d800 nid=0x1ca5...2 CPU飙高,load高,响应很慢 一个请求过程中多次dump;对比多次dump文件的runnable线程,如果执行的方法有比较大变化,说明比较正常。
获取JVM的dump文件的两种方式 1....JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX:HeapDumpPath=/home/liuke...发现程序异常前通过执行指令,直接生成当前JVM的dmp文件,6214是指JVM的进程号 jmap -dump:format=b,file=serviceDump.dat 6214 由于第一种方式是一种事后方式...,需要等待当前JVM出现问题后才能生成dmp文件,实时性不高,第二种方式在执行时,JVM是暂停服务的,所以对线上的运行会产生影响。
JAVA Thread Dump 文件分析 Thread Dump介绍 Thread Dump是非常有用的诊断Java应用问题的工具。...image 日志字段分析 我们把Thread dump文件分为2个部分来理解 拿我们的例子来说: //头部信息 包含 当前时间 jvm信息 2021-01-14 17:00:51 Full thread...runnable 一般指该线程正在执行状态中,该线程占用了资源,正在处理某个操作,如通过SQL语句查询数据库、对某个文件进行写入等。...我们在程序跑起来之后大概10秒时候导出thread dump日志文件信息,此时: "线程1" #12 prio=5 os_prio=0 tid=0x00007f420024d800 nid=0x1ca5...2 CPU飙高,load高,响应很慢 一个请求过程中多次dump;对比多次dump文件的runnable线程,如果执行的方法有比较大变化,说明比较正常。
二、core dump文件的作用 当进程收到动作为core的信号发生异常退出时,将进程在内存中的核心数据(主要是与调试有关的核心数据)转储到磁盘中形成core dump文件,core dump文件可以帮助程序员定位到程序为什么退出以及是在哪一行退出的...三、开启core文件功能 在Linux系统上,core dump文件的生成默认是关闭的。 默认core文件的大小为零,也就是关闭的。 下面是core文件生成的打开方法。 ...也就是说,形成的core dump文件的名称是可以自定义的,但我还是建议将core dump文件的名称就设置为core。...先设置core dump文件的大小: 执行该条指令,运行我的可执行程序,发生除0错误,这次就会形成core dump文件了。 .../proc目录在Linux系统中是一个伪文件系统,它只存在于内存中,并不占用实际的磁盘空间。这个目录下的文件并不是真正的文件和目录,而是内核运行时的一些信息、状态和参数的接口。
3 dump 文件分析 3.1 dump 生成 JProfiler 在线 当JProfiler连接到JVM之后选择Heap Walker,选择Take snapshot图标,然后等待即可 ?...HPROF snapshot 弹出下拉框保存即可,这时候生成的文件就可以一直保存在文件上 jmap jmap -dump:format=b,file=文件名 pid windows下不用[],路径要加引号...jmap -dump:format=b,file="D:\a.dump" 8632 命令中文件名就是要保存的dump文件路径, pid就是当前jvm进程的id JVM启动参数 在发生outofmemory...启动参数可以在发生内存outofmemory的时候自动生成dump文件,但是正式环境使用的时候不要加这个参数,不然在内存快满的时候总是会生成dump而导致jvm卡半天,需要调试的时候才需要加这个参数 注意...:通过WAS生成的PHD文件dump不能分析出出问题的模板,因为PHD文件不包含对象的值内容,无法根据PHD文件找到出问题的模板,所以PHD文件没有太大的参考价值 3.2 dump文件分析 dump文件生成后
今天刚好手边有一个系统蓝屏的dump文件,下面一步一步来找到出错的地方。 1.用windbg打开dump文件,设置好符号路径等。 已经基本确定了是哪个驱动引起的问题。 2.执行!
弹出下拉框保存即可,这时候生成的文件就可以一直保存在文件上 jmap jmap -dump:format=b,file=文件名 pid windows下不用[],路径要加引号 jmap -dump...:format=b,file="D:\a.dump" 8632 命令中文件名就是要保存的dump文件路径, pid就是当前jvm进程的id JVM启动参数 在发生outofmemory的时候自动生成dump...outofmemory的时候自动生成dump文件,但是正式环境使用的时候不要加这个参数,不然在内存快满的时候总是会生成dump而导致jvm卡半天,需要调试的时候才需要加这个参数 注意:通过WAS生成的PHD...文件dump不能分析出出问题的模板,因为PHD文件不包含对象的值内容,无法根据PHD文件找到出问题的模板,所以PHD文件没有太大的参考价值 3.2 dump文件分析 dump文件生成后,将dump压缩传输到本地...,不管当前dump的后缀名是什么,直接改成*.hprof,就可以直接用jprofiler打开了 打开的过程时间可能会很长,主要是要对dump进行预处理,计算什么的,注意 这个过程不能点skip,否则就不太好定位大文件
~]# restore -r [-f dumpfile] 文件系统 选顷不参数: 相关癿各种模式,各种模式无法混用喔!...-t :此模式用在察看 dump 起来癿备份文件中含有什么重要数据!...类似 tar -t 功能; -C :此模式可以将 dump 内的数据拿出来跟实际的文件系统做比较, 最终会列出『在 dump 档案内有记录的,且目前文件系统丌一样』癿档案; -i :迚入互模式...,可以仅还原部分档案,用在 dump 目录时的还原!...-r :将整个 filesystem 还原癿一种模式,用在还原针对文件系统癿 dump 备 份; 其他较常用到癿选顷功能: -h :察看完整备份数据中的 inode 不文件系统 label 等信息
分析: 1,patch 作者写了一个patch,方便把kmsg信息保存到文件中,下次启动可以查看: 修改linux-4.4/kernel/panic.c文件,增加函数: #ifdef CONFIG_PRINTK...void dump_kmsg_to_file(void) { struct file *fkmsg = NULL; struct file *ffile = NULL; loff_t...PAGE_SIZE; size_t ret = 0; const char __user *p; mm_segment_t old_fs; pr_emerg("trigger dump...== NULL) { pr_emerg("vmalloc fail\n"); goto close_ffile; } pr_emerg("start dump...return; } #endif /*#ifdef CONFIG_PRINTK*/ 在pr_emerg("Kernel panic - not syncing: %s\n", buf);函数后面调用dump_kmsg_to_file
3 查看Linux磁盘空间信息 根据上面MySQL的No space left on device提示,立马使用df -hl命令查看当前CentOS7.1服务器的磁盘空间信息。...而mysql得数据文件正好存放在mydata分区中,悲剧! 接着进入到/mydata分区,使用命令du -sh查看当前目录下各个子目录所占用的空间大小。...结果太出乎意料了,竟然是存放Core Dump文件的corefile目录占用了16G的空间!...这才想起在《CentOS开启coredump转储并生成core文件的配置》文中,设置了Core Dump文件大小为unlimited。日积月累,终于把MySQL搞挂掉了!...4 解决 先删掉corefile目录下面的大部分Core Dump文件,然后使用命令ulimit -c 10240设置coredump file-size为10M。
.dmp是损坏的或者创建.dmp失败,这些都有可能发生crash的类型比较多,有些类型的crash,crash过程观察到了,但是最终并不一定会产生.dmp文件比如下面这个图片可以用微软的蓝屏工具去模拟,...sysinternals/downloads/notmyfault我分别选了High IRQL (Kernel-mode)和High IRQL (User-mode)触发crash,发现前者生成了2个.dmp文件
右击新建一个可扩展字符串,写入 DumpFolder 然后双击输入 DUMP 文件可以存放的文件夹,注意这个文件夹需要有权限 ?...输入 0 是 Custom dump 自定义的 dump 文件,输入 1 是 Mini dump 一个小的 DUMP 输入 2 是 Full dump 推荐使用包含程序所有信息的 dump 这样调试方便...设置完成就可以运行一个会炸的程序,看一下是不是在设置的文件里面存在了 DUMP 文件 创建一个运行直接退出的程序 打开 VisualStudio 创建一个 UWP 程序,在这个程序里面写简单代码 界面的代码...调试 DUMP 文件 推荐使用 WinDbg Preview 进行调试 打开应用商店,搜 WinDbg Preview 就可以安装 ?...直接双击 DUMP 文件使用 WinDbg Preview 打开 ? 打开之后就可以去玩一会回来,加载符号需要很长的时间 这个软件的每个界面功能请看下面 ?
进程崩溃时,Linux会将崩溃前进程的内存状态保存在core文件里,就像保存了案发现场的照片,可以帮助开发人员找到事故原因,修复程序。本文用简单的例子讲解如何根据core文件,定位进程崩溃的原因。...编译出可执行文件coretest01,运行打印出core dumped,应该出现core文件。 ? 但是在目录下并没有产生core文件,这是系统设置禁止了文件产生。...当出现core文件时,我们首先要判断core文件由哪个可执行文件产生,然后才能排查问题。命令file core可以帮助我们判断core是哪个可执行文件产生的。...编译生成可执行文件coretest02,运行两个可执行文件,会出现两个core文件 ?...file core.* 可以正确指出core文件出自哪个可执行文件(无论可执行文件是什么,哪怕是java,Python,都是一样的操作),然后gdb 可执行文件 core.*,可以查看错误原因。 ?
fastq-dump是SRAtoolkit中使用频率很高的命令,用于从SRA文件中拆解提取fastq文件。...具体用法如下: Usage: fastq-dump [options] [...]...拆解一个sra文件 cd ~/Seqs fastq-dump --split-files SRR6232298.sra SRR6232298.sra是一个PE测序结果,所以,需要--split-files...参数可以将其分解为两个fastq文件。...如果不加该参数,则只有1个fastq文件(包含了两端测序的结果) ###二.批量拆解sra文件 ####1. 新建脚本文件nano fqdump.sh ####2. 输入以下脚本#!
为了测试用途,从生产库导出了一份dump文件,打算导入测试环境中,如果这份dump文件有损坏,可能我执行的impdp,会造成数据库有一部分数据导入成功了,但另一部分失败了,要么挑出失败的部分,断点执行...我们是不是只能通过执行impdp,真正执行导入操作才可以知道这份expdp导出的dump文件是否是完整正确的? Oracle如此智能,会给我们一些方法来校验。...若是让这个dump文件产生错误,执行导入命令,就会提示报错, ?...损坏dump文件的方法很多, The files are invalidated by non-binary ftp transfer....例如,使用FTP传输时未指定二进制模式,破坏文件的传输过程,由于文件系统大小限制,导致文件被截断,导出任务未正确完成操作,这些场景都可能造成dump不可用。