一:背景 1. 讲故事 前段时间收到了一个朋友的求助,说他的ERP网站系统会出现偶发性崩溃,找了好久也没找到是什么原因,让我帮忙看下,其实崩溃好说,用 procdump 自动抓一个就好,拿到 dump 之后,接下来就是一顿分析了. 二:WinDbg 分析 1. 是什么导致的崩溃 windbg 有一个自动化的分析命令 !analyze -v 可以帮我们提前预诊一下,就好像进医院先在问询台那里过一下. 0:019> !analyze -v CONTEXT: (.ecxr) eax=14c9cd00…
一:背景 1. 讲故事 最近收到了两起程序崩溃的dump,查了下都是经典的 double free 造成的,蛮有意思,这里就抽一篇出来分享一下经验供后面的学习者避坑吧. 二:WinDbg 分析 1. 崩溃点在哪里 windbg 带了一个自动化分析命令 !analyze -v 可以帮助我们找到崩溃时的程序指令地址以及崩溃的代码,这对我们分析问题非常有帮助. 0:090> !analyze -v ****************************************************…
一:背景 1. 讲故事 在给各位朋友免费分析 .NET程序 各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows 崩溃,C++ 崩溃,Mono 崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个 Windows 崩溃的内核dump 吧,这个 dump 是前几天有位朋友给到我的,让我帮忙看一下,有了dump之后上 windbg 分析. 二:WinDbg 分析 1. 从哪里入手 只要是 Windows 平台上的崩溃,操作系统都会维护一个 EXCEP…
一:背景 1. 讲故事 上周看了一位训练营朋友的dump,据朋友说他的程序卡死了,看完之后发现是一例经典的死锁问题,蛮有意思,这个案例算是学习 .NET高级调试 入门级的案例,这里和大家分享一下. 二:WinDbg 分析 1. 程序为什么会卡死 因为是窗体程序,所以看主线程的线程栈就好了,如果卡在 用户态 那这个问题相对容易解决,如果卡在 内核态 这个问题就比较复杂了,需要开启 WinDbg 的本机内核调试或者双机调试才能找到最终的问题. 既然已经说了是入门级,那肯定是卡在 用户态 层面啦,我们…
事件:Mac系统崩溃,导致电脑数据丢失,以及数据安全备份措施的不到位的教训! 解决措施: 1.开机后按:Command+R 按开机键 ,进入Mac 实用工具, 选择磁盘工具.由于没有备份直接抹掉磁盘. 2. 退出磁盘工具,进入到:重新安装macOS,选择重新安装 3.安装后效果如下 顺便说一下: Command+option+R :进入初始化界面 教训意义: 1.将电脑上的数据资料备份到:icloud上,以免后期系统问题或硬件问题导致数据丢失. 2. 重要数据,尽量备份到多个地方,多重保险. 3…
http://www.ibm.com/developerworks/cn/linux/l-cn-dumpanalyse/https://www.kernel.org/pub/linux/utils/kernel/ http://seanlook.com/2014/11/03/one-troubleshooting-for-centos-corrupt/ :记一次错误卸载软件包导致Linux系统崩溃的修复解决过程 mysqlhttp://smilejay.com/2016/04/centos7-k…
RHEL6误使用了RHEL7的光盘源,安装了某个RPM包之后,导致glibc被升级,进而导致系统崩溃.   [root@rhel65 ~]# yum install ftp Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscr…
Windows系统崩溃后快速恢复Oracle数据库,以下是操作步骤 假设oracle数据安装在d:\\oracle文件夹中,数据库名称orcl 1>将崩溃的数据库安装目录"d:\\oracle"整个备份. 1>重做和以前一样操作系统. 2>安装和以前一样版本的oracle数据库,数据库名称.安装目录.数据文件目录都一致. 3>安装成功后,关闭数据库,进入命令行,手动关闭数据库. 4>数据库关闭后,关闭oracle相关的所有服务,即关闭服务中以oracle开…
运行ChemDraw应用程序时,一般不会引起系统崩溃,但在使用CS software产品可能会引发计算机崩溃.为了方便广大用户的使用,本教程将教授大家如何解决ChemDraw运行中引起的系统崩溃. 当ChemDraw运行中发生系统崩溃时,您可以尝试使用以下步骤解决问题:  ChemDraw工作界面 (1)重新启动Macintosh或Windows,接着努力减少问题.如果问题没有再次发生,继续查验. (2)(在Macintosh环境下)重新启动计算机并按下Shift键关闭所有的系统空间.试图让故障…
百度百科:内存转储文件 内存转储是用于系统崩溃时,将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析用途.而它所保存生成的文件就叫做内存转储文件. 内存转储文件也被称作虚拟内存,它是用硬盘里的一段空间虚拟成内存来存放程序来运行,由于硬盘的运行速度比内存慢很多,所以虚拟内存应不要很大,操作系统把虚拟内存存在一个文件里,那个文件有多大表示当前操作系统虚拟的内存有多大 . 文章:如何生成转储(dmp)文件--工具篇 文章:WinDbg分析DMP文件方法完全攻略 这个大牛写了很多关于WinDb…