使用Visual Studio 2010将.dmp文件调试到特定的源代码行

时间:2021-12-27 02:51:45

I have a dump file from an mvc4 web api that is pretty much crashing the w3wp.exe process (the bits are based off a debug build). I started diag debug diag to get the .dmp and there are parts of the .net stack .html summary for the crash report of the .dmp file that reference some of my methods which are probably suspect including a cacheing object as well as a db context that are somehow crashing due to systemobject dispose (something is going out of scope when I reference something..either cache or db context or both). It makes sense that those items are contained in the list summary of the .html .dmp report but they really don't tell me where the code is throwing.

我有一个来自mvc4 web api的转储文件,它几乎崩溃了w3wp.exe进程(这些位基于调试版本)。我启动了diag debug diag来获取.dmp,并且.dmp文件的崩溃报告中有.net stack .html摘要的一部分,它引用了我可能怀疑的一些方法,包括缓存对象和db由于systemobject dispose而以某种方式崩溃的上下文(当我引用某些东西时,某些东西超出了范围......无论是缓存还是db上下文还是两者都有)。这些项目包含在.html .dmp报告的列表摘要中是有道理的,但它们实际上并没有告诉我代码在哪里投掷。

With the .dmp file at hand when I try to load it within Visual Studio to Debug and link back to source code I get the following errors:

当我尝试在Visual Studio中加载它以调试并链接回源代码时,手头有.dmp文件,我收到以下错误:

1) Debugging inforamtion for w3wp.exe cannot be found or does not match. Symbols loaded (source information stripped). Do you want to continue debugging?

1)无法找到或不匹配w3wp.exe的调试信息。加载符号(删除源信息)。你想继续调试吗?

continue selected...

继续选择......

2) Unhandled exception at 0x000007fefdc3cacd (KERNELBASE.dll) in w3wp_MyApp_PID_36504_Date__02_14_2013__Time_04_32_57PM_276_First chance exception 0XE0434352.dmp: 0xE0434352: 0xe0434352

2)w3wp_MyApp_PID_36504_Date__02_14_2013__Time_04_32_57PM_276_第一次机会异常时0x000007fefdc3cacd(KERNELBASE.dll)处的未处理异常0XE0434352.dmp:0xE0434352:0xe0434352

I have the Debug/General "microsoft symbol servers" checked to presumably down any necessary symbols and linkage. However, when I continue and break after the last error, there are no references to my code within the call stack or the Debug/Windows/Paralell Stacks but I dont' see any of my classes or object called or spelled out. All is see are offsets and the disassembly with a carret as the break point at some "mov" operation.

我检查了Debug / General“微软符号服务器”,大概是根据任何必要的符号和链接。但是,当我在最后一个错误之后继续并中断时,在调用堆栈或Debug / Windows / Paralell堆栈中没有对我的代码的引用,但我没有看到我的任何类或对象被调用或拼写出来。所有都是看到的偏移和拆卸与carret作为一些“mov”操作的断点。

I've followed this troubleshooting/debugging link to book but still cannot get any symbols to resolves to locals or see any of my method names being called. http://blogs.msdn.com/b/tess/archive/2009/06/16/first-look-at-debugging-net-4-0-dumps-in-visual-studio-2010.aspx

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

ASK: How can I link this .dmp to the exact line of code that is throwing? Thanks!

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

1 个解决方案

#1


1  

  • Load it in windbg.
  • 将它装入windbg。
  • Load sos (in .NET 4 .loadby sos clr or in previous versions .loadby sos mscorwks)
  • 加载sos(在.NET 4 .loadby sos clr或以前的版本中.loadby sos mscorwks)
  • !Threads
  • !线程

At this point you should see an exception in the relevant thread. If not, you might need to go searching for it using !DumpHeap -type Exception or something similar.

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

  • Use !pe <address> to examine the exception.
  • 使用!pe
    检查异常。

I'm happy to help if you get lost. Windbg is not easy.

如果你迷路,我很乐意帮忙。 Windbg并不容易。

#1


1  

  • Load it in windbg.
  • 将它装入windbg。
  • Load sos (in .NET 4 .loadby sos clr or in previous versions .loadby sos mscorwks)
  • 加载sos(在.NET 4 .loadby sos clr或以前的版本中.loadby sos mscorwks)
  • !Threads
  • !线程

At this point you should see an exception in the relevant thread. If not, you might need to go searching for it using !DumpHeap -type Exception or something similar.

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

  • Use !pe <address> to examine the exception.
  • 使用!pe
    检查异常。

I'm happy to help if you get lost. Windbg is not easy.

如果你迷路,我很乐意帮忙。 Windbg并不容易。