Windows windbg和debugdiag显示不同的线程调用堆栈

Windows windbg和debugdiag显示不同的线程调用堆栈,windows,windbg,callstack,debugdiag,Windows,Windbg,Callstack,Debugdiag,我得到了我申请过程的转储文件。 我用debugdiag 2.0和windbg处理它。 但是,我得到了一个不同的线程调用堆栈。 所以,我很困惑 有人能告诉我为什么会这样吗 下面是windbg的线程调用堆栈 . 0 Id: 16ec.1760 Suspend: 0 Teb: 00000000`7ec1a000 Unfrozen # Call Site 00 wow64cpu!CpupSyscallStub 01 wow64cpu!ReadWriteFileFault 02 wow64!RunC

我得到了我申请过程的转储文件。 我用debugdiag 2.0和windbg处理它。 但是,我得到了一个不同的线程调用堆栈。 所以,我很困惑

有人能告诉我为什么会这样吗

下面是windbg的线程调用堆栈

.  0  Id: 16ec.1760 Suspend: 0 Teb: 00000000`7ec1a000 Unfrozen
 # Call Site
00 wow64cpu!CpupSyscallStub
01 wow64cpu!ReadWriteFileFault
02 wow64!RunCpuSimulation
03 wow64!Wow64LdrpInitialize
04 ntdll!LdrpInitializeProcess
05 ntdll!_LdrpInitialize
06 ntdll!LdrInitializeThunk
下面是debugdiag的线程调用堆栈

.  0  Id: 16ec.1760 Suspend: 0 Teb: 00000000`7ec1a000 Unfrozen
 # Call Site
00 wow64cpu!CpupSyscallStub
01 wow64cpu!ReadWriteFileFault
02 wow64!RunCpuSimulation
03 wow64!Wow64LdrpInitialize
04 ntdll!LdrpInitializeProcess
05 ntdll!_LdrpInitialize
06 ntdll!LdrInitializeThunk
线程0-系统ID 5984

入口点IMCM+1e05f 创建时间2018-04-24上午10:54:21 在用户模式下花费的时间0天00:00:00.125 在内核模式下花费的时间0天00:00:00.046

此线程未完全解决,可能是问题,也可能不是问题。可能需要对这些螺纹进行进一步分析

ntdll_77720000!NtReadFile+c 
KERNELBASE!ReadFile+79 
msvcr110!_read_nolock+272 
msvcr110!_read+a9 
msvcr110!_filbuf+70 
msvcr110!_fgetwc_nolock+114 
msvcr110!_getws_helper+63 
msvcr110!_getws_s+10 
IMCM+18ec 
IMSvcSrvLib!CSvcApp::Run+5c 
IMComLib!CIMBaseApp::Main+62 
IMCM+15515 
IMCM+1dff7 
kernel32!BaseThreadInitThunk+24 
ntdll_77720000!__RtlUserThreadStart+2f 
ntdll_77720000!_RtlUserThreadStart+1b 

是32位或64位应用程序的转储。wow64cpu输出表明转储的位可能不正确。如果它是一个32位应用程序,那么您需要对它进行32位转储;如果是64位应用程序,则需要对其进行64位转储。此外,在分析转储时,还需要使用与WinDbg相同的比特数。我不确定debugdiag,但情况可能是一样的。@Dono很可能是正确的。如果捕获一个32位转储,则应该更容易了解发生了什么。同时,在打印调用堆栈之前,可以运行WinDbg命令切换到32位模式。这与调试32位转储不同(某些扩展可能无法工作),但至少应该有帮助。