由于这近一年时间一直忙于写书和工作,一直没有水文,但是近期有几位朋友使用我们的Magicodes.IE反馈在导出过程中内存暴涨...好吧,不管怎样,不能苦了我们朋友,接下来我们通过windbg来看一下什么原因导致的. 接下来我们先通过address -summary来看一下当前应用内存占用量. 0:000> !address -summary --- Usage Summary ---------------- RgnCount ----------- Total Size -------- %…
概述: 注册生成dump文件的函数. 当程序收到没有捕获的异常时,调用上述函数,生成dump文件. 利用Windbg结合编译程序时生成的pdb和代码来分析dump文件,定位问题. 如下代码生成dump文件(转): #include <Windows.h> #include <stdio.h> #include <DbgHelp.h> #pragma comment(lib, "dbghelp.lib") inline BOOL IsDataSecti…
Windbg的一些简单使用命令 一.崩溃 1.  输入.ecxr;kbn得到崩溃的堆栈 其中源代码如下 2.  查看堆栈和源代码,发现第0帧导致崩溃,代码也是本地代码 输入.frame  0,切到第0帧如下 3.  输入 dv 查看当前帧的一些变量信息 发现变量p =0x00000000 二.句柄泄漏 1.  启动进程 2.  用windbg附加到进程 3.  !htrace  -enable命令开启句柄检测 4.  !htrace  –snapshot 5.  运行一段时间后 6.  !htr…
前几天有个朋友发个了在windows server 2008跑的IIS 跑的程序w3wp程序dmp,要我帮忙分析为何线程都挂起不运行 经过查阅资料用windbg可以调试可以输出线程的调用堆栈,但是准备调试之前费了不少功夫和时间 主要碰到是SOS.DLL和DMP 文件运行时候的CLR.DLL不匹配问题,那就需要从w3wp运行的机器上拷贝到对应.net版本下面的sos.dll,clr.dll,mscordacwks.dll文件 然后给windbg 加载,主要是通过.load 命令,卸载扩展DLL命令…
调试技巧 —— 如何利用windbg + dump + map分析程序异常 逗比汪星人2011-09-04上传   调试技巧 —— 如何利用windbg + dump + map分析程序异常 http://blog.csdn.net/wangningyu/article/details/6748138 http://download.csdn.net/detail/wangningyu/3575167…
http://www.appinn.com/blue-screen-search-code/ 蓝屏代码查询器 – 找出蓝屏的元凶 11 文章标签: windows / 系统 / 蓝屏. 蓝屏代码查询器可以帮你查出引起蓝屏的故障原因并可以到微软知识库中查询解决方案,和之前的 BlueScreenView 配合是很好的蓝屏故障排除组合.@Appinn 使用时只需填入错误代码的简写即可,另外在支持中心中有关于蓝屏原因分析的文章链接,有兴趣的童鞋可以去看看..  官方网站 | 来自小众软件 http:/…
1. 问题简介 最近产品发布大版本补丁更新,一商超客户升级后,反馈系统经常奔溃,导致超市的收银系统无法正常收银,现场排队付款的顾客更是抱怨声声.为了缓解现场的情况, 客户都是手动回收IIS应用程序池才能解决. 这样的后果是很严重的,接到反馈,第一时间想到的是加内存吧,这样最快.但是客户从8G-->16G-->32G,只是延长了每次奔溃的时间,但是并没有解决系统卡顿的问题.到这里,也基本猜测了问题所在了,肯定是什么东西一直在吃内存且得不到释放.这种问题,也就只能打Dump分析了. 2. 打Dum…
一.WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具.它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏.程序崩溃(IE崩溃)原因,是我们日常工作中必不可少的一个有力工具,学会使用它,将有效提升我们的问题解决效率和准确率. 二.设置符号表: 符号表是WinDbg关键的“数据库”,如果没有它,WinDbg基本上就是个废物,无法分析出更多问题原因.所以使用WinDbg设置符号表,是必须要走的一步. 1.运行WinDbg软件,然后按[Ctrl+…
记录下自己使用WinDbg分析Dump时常用的一些方法和命令 !analyze -v //找出出错的堆 .exrc //找到程序崩溃的位置 !heap //打印出错函数的局部位置 !for_each_frame dv /t //显示call stack内容 ~*kbn //显示所有线程信息 ~线程号 s //切换线程 kbn //显示当前线程信息 .reload //加载符号信息 !runaway //查看19号线程所用时间 .load wow64exts !sw //切换到64位 定位Unha…
1.     必须在命令行中设置为要分析的进程打开用户堆栈信息:C:\Program Files\Debugging Tools for Windows (x64)>gflags.exe -i YourDebugProcess.exe +ust 2.     必须是Debug版本的进程 3.     设置好windbg的pdb路径,即symbol path 4.     利用windbg的AttachToProcess (貌似后面这个方案不行:在目标机器上产生转储文件(dump)然后用windb…