当前位置: 首页 > news >正文

Analysing crash dump in windbg

​​​​​​Analysing crash dump in windbg

debugging - Analysing crash dump in windbg - Stack Overflow

10

6

I am using a third party closed source API which throws an exception stating that "all named pipes are busy".

I would like to debug this further (rather than just stepping through) so I can actually learn what is happening under the covers.

I have taken a dump of this process using WinDbg. What commands should I now use to analyse this dump?

Thanks

debuggingwindbg

Share

Follow

asked Oct 30, 2009 at 10:49

csharpdev

29722 gold badges44 silver badges99 bronze badges

  • Is it managed or native? Can you throw some more details? 

    – Naveen

     Oct 30, 2009 at 13:58

Add a comment

5 Answers

Sorted by:

                                              Highest score (default)                                                                   Date modified (newest first)                                                                   Date created (oldest first)                              

19

You could start doing as follows to get an overview of the exception:

!analyze -v

Now you could load the exception context record:

.ecxr

And now... just take a look at the stack, registers, threads,...

kb     ;will show you the stack trace of the crash.
dv     ;local variables

Depending on the clues you get, you should follow a different direction. If you want a quick reference to WinDbg I'd recommend you this link.

I hope you find some of this commands and info useful.

Share

Follow

answered Dec 4, 2009 at 9:57

davidag

2,57733 gold badges2323 silver badges4141 bronze badges

Add a comment

5

In postmortem debugging with Windbg, it can be useful to run some general diagnostic commands before deciding where to dig deeper. These should be your first steps:

.logopen <filename>    (See also .logappend)
.lastevent             See why the process halted and on what thread
u                      List disassembly near $eip on offending thread
~                      Status of all threads
Kb                     List callstack, including parameters
.logclose

These commands typically give you an overview of what happened so you can dig further. In the case of dealing with libraries where you don't have source, sending the resulting log file to the vendor along with the build # of the binary library should be sufficient for them to trace it to a known issue if there is one.

Share

Follow

answered Dec 3, 2009 at 17:37

Michael Labbé

11.4k44 gold badges2626 silver badges3434 bronze badges

Add a comment

2

This generally happens when a client calls CreateFile for an existing pipe and all the existing pipe instances are busy. At this point CreateFile returns an error and the error code is ERROR_PIPE_BUSY. The right thing at this point is to call WaitNamedPipe with a timeout value to wait for a pipe instance to become available.

The problem generally happens when more than one client tries to connect to the named pipe at the same time.

Share

Follow

answered Oct 31, 2009 at 18:23

steve

5,62411 gold badge1818 silver badges2121 bronze badges

Add a comment

0

I assume that the 3rd party dll is native (Otherwise, just use Reflector)

Before using WinDbg to analyze the dump, try using Process-Monitor (SysInternals, freeware) to monitor your process's activity. if it fails because of a file system related issue, you can see exactly what caused the problem and what exactly it tried to do before failing.

If Process-Monitor wasn't enough than you can try and debug your process. but in order to see some meaningful information about the 3rd party dll you'll need it's pdb's.

After setting the correct debug symbols, you can view the call stack by using the k command or one of it's variations (again, I assume you're talking about native code). if your process is indeed crashing because of this dll than examine the parameters that you pass to it's function to ensure that the problem is not on your side. I guess that further down the call stack, you reach some Win32 API - examine the parameters that the dll's function is passing, trying to see if something "smells". If you have the dll's private symbol you can examine it's function's local variables as well (dv) which can give you some more information.

I hope I gave you a good starting point.

Share

Follow

answered Nov 6, 2009 at 18:35

Moshe Levi

3,3631919 silver badges2525 bronze badges

Add a comment

0

This is an excellent resource for using WinDbg to analyze crashes that may be of some use: How to solve Windows 10 crashes in less than a minute. | Network World

The article is for Windows 10, but it contains links to similar information for earlier versions of Windows.

Share

Follow

edited Mar 30, 2017 at 3:23

answered Nov 6, 2009 at 18:43

boot13

15511 silver badge1010 bronze badges

  • The link is b

相关文章:

  • 【无标题】使用VS调试DUMP文件
  • 使用VS调试Dump文件
  • 【无标题】dump解析入门-用VS解析dump文件进行排障
  • Crash Dump调试:Symbol Server/Source Server、PDB原理分析
  • [笔记]Ray Tracing with Cones
  • bundletool 工具使用
  • 123456789
  • Visual Studio调试器指南---自动启动调试器
  • 在启动时无法再使用vsjitdebugger来调试进程
  • 游戏引擎随笔 0x34:UE5 Lumen 源码解析(六)Importance Sampling 篇
  • 剖析虚幻渲染体系(06)- UE5特辑Part 2(Lumen和其它)
  • Oracle查询字段 类型 长度 是否空 注释
  • oracle数据恢复
  • IDEA 使用文档总结
  • timestamp显示问题
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Android开源项目规范总结
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • ECMAScript入门(七)--Module语法
  • rabbitmq延迟消息示例
  • React Transition Group -- Transition 组件
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 编写符合Python风格的对象
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 缓存与缓冲
  • 浅谈Golang中select的用法
  • 如何选择开源的机器学习框架?
  • 思考 CSS 架构
  • 协程
  • 译自由幺半群
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • # 达梦数据库知识点
  • #Lua:Lua调用C++生成的DLL库
  • #预处理和函数的对比以及条件编译
  • $$$$GB2312-80区位编码表$$$$
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)计算机毕业设计大学生兼职系统
  • (三) diretfbrc详解
  • (十八)SpringBoot之发送QQ邮件
  • (一)Neo4j下载安装以及初次使用
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net 高效开发之不可错过的实用工具
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net和jar包windows服务部署
  • .NET中 MVC 工厂模式浅析
  • .net中调用windows performance记录性能信息
  • .net中我喜欢的两种验证码
  • .sh
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • ?php echo ?,?php echo Hello world!;?