使用Debugdiag获取其他呼叫功能信息



我正在使用.dmp文件使用debugdiag 1.2。我一直在使用Microsoft支持,我们获得了不同的功能跟踪详细信息 - 他的版本具有更多的详细信息,其中包含功能名称和参数。

我想知道我是否缺少与他相同的东西?

例如,我会得到:

ntdll!NtWaitForMultipleObjects+a    
KERNELBASE!WaitForMultipleObjectsEx+e5    
clr!WaitForMultipleObjectsEx_SO_TOLERANT+62    
clr!Thread::DoAppropriateAptStateWait+53    
clr!Thread::DoAppropriateWaitWorker+186    
clr!Thread::DoAppropriateWait+7d    
clr!WaitHandleNative::CorWaitOneNative+151    
mscorlib_ni+509aa4    
0x000007fd`231e0e5c    
mscorlib_ni+4efd85    
mscorlib_ni+4efae9    
mscorlib_ni+4efaa7    
mscorlib_ni+d529ad 

对于同一转储文件,他会得到:

ntdll!ZwWaitForMultipleObjects+a 
KERNELBASE!WaitForMultipleObjectsEx+e5 
clr!WaitForMultipleObjectsEx_SO_TOLERANT+62 
clr!Thread::DoAppropriateAptStateWait+53 
clr!Thread::DoAppropriateWaitWorker+186 
clr!Thread::DoAppropriateWait+7d 
clr!WaitHandleNative::CorWaitOneNative+151 
mscorlib_ni!System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean)+14 
FiftyOne_Foundation!Unknown+3c 
mscorlib_ni!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+285 
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)+9 
mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+57 
mscorlib_ni!System.Threading.ThreadHelper.ThreadStart(System.Object)+5d 

debugdiag看起来像是一个非常有用的工具 - 我非常想对其有很好的了解。预先感谢您的时间。

不同的是,Microsoft支持使用内部私有符号,当您使用带有私有符号的调试诊断工具时,报告中显示的本机堆栈更为准确。更好的是,因为调试器(dbggeng.dll和dbghelp.dll要具体)甚至能够弄清楚托管函数名称,并且它们在本机堆栈中显示了这些功能,就像它们是本机函数一样,但是如果我们使用公共符号(从msdl.microsoft.com)要分析转储,这些功能名称不会在本机堆栈部分下的"调试DIAG报告"中显示。

您仍然应该能够在报告中的线程托管呼叫刻在

中看到正确的功能名称

我还可以看到,在转储中加载的CLR为4.0或更高,因此,如果您使用Debug Diagnostic 2.0,则可以在报告中获得更好的堆栈,因为专门为Target 4.0及以上框架运行时间编写。您可以从http://www.microsoft.com/en-us/download/details.aspx?id=40336

下载它。

最新更新