1

我有一个来自 mvc4 web api 的转储文件,它几乎使 w3wp.exe 进程崩溃(这些位基于调试版本)。我开始 diag debug diag 以获取 .dmp 并且 .dmp 文件的崩溃报告的 .net 堆栈 .html 摘要的某些部分引用了我的一些可能怀疑的方法,包括缓存对象和 db由于系统对象处置而以某种方式崩溃的上下文(当我引用某些内容时,某些内容超出了范围......缓存或数据库上下文或两者兼而有之)。这些项目包含在 .html .dmp 报告的列表摘要中是有道理的,但它们实际上并没有告诉我代码在哪里抛出。

当我尝试在 Visual Studio 中将其加载到 Debug 并链接回源代码时,手头的 .dmp 文件出现以下错误:

1) w3wp.exe 的调试信息找不到或不匹配。已加载符号(已删除源信息)。是否要继续调试?

继续选择...

2) w3wp_MyApp_PID_ 36504 _Date__02_14_2013__Time_04_32_57PM_276 _First chance exception 0XE0434352.dmp: 0xE0434352: 0xe0434352 中的 0x000007fefdc3cacd ( KERNELBASE.dll )未处理异常

我检查了调试/常规“微软符号服务器”,以推测可能关闭任何必要的符号和链接。但是,当我在最后一个错误之后继续并中断时,调用堆栈或 Debug/Windows/Paralell 堆栈中没有对我的代码的引用,但我没有看到我的任何类或对象被调用或拼写出来。所看到的只是偏移量和在某些“mov”操作中以carret 作为断点的反汇编。

我已经按照这个故障排除/调试链接到书,但仍然无法获得任何符号来解析为本地人或看到我的任何方法名称被调用。 http://blogs.msdn.com/b/tess/archive/2009/06/16/first-look-at-debugging-net-4-0-dumps-in-visual-studio-2010.aspx

问:如何将此 .dmp 链接到正在抛出的确切代码行?谢谢!

4

1 回答 1

1
  • 在windbg中加载它。
  • 加载 sos(在 .NET 4.loadby sos clr或以前的版本中.loadby sos mscorwks
  • !Threads

此时,您应该在相关线程中看到异常。!DumpHeap -type Exception如果没有,您可能需要使用或类似的东西去搜索它。

  • 用于!pe <address>检查异常。

如果你迷路了,我很乐意提供帮助。Windbg并不容易。

于 2013-06-13T22:02:42.083 回答