user5545734
user5545734

Reputation:

Different call stacks in Visual Studio and WinDbg

There is a mini dump of an application at the moment when an exception is thrown. It is given independently to Visual Studio 2013 and to WinDbg. Both tools are configured to properly load debug symbols. And indeed the call-stacks of all threads but the main thread are shown the same.

The problem is with the main thread, where the exception was thrown.

Visual Studio 2013 correctly shows it as

KERNELBASE.dll!_RaiseException@16()  + 0x58 bytes   
msvcr120.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo)  Line 152 + 0x13 bytes   C++
AlignUtils.dll!genPresume(int i_line, const char * i_file, const char * i_expr)  Line 17 + 0x30 bytes   C++
FiPosShared.dll!FiPosShared_NS::InclinationFunction::fix(const Math_NS::RigidTransform<double> & toothXform, double targetAngle)  Line 68 + 0x1db bytes C++
FiPosShared.dll!FiPosShared_NS::InclinationFunction::dTorque_dInclination(const Math_NS::RigidTransform<double> & i_param, const Math_NS::RigidTransform<double> & i_base)  Line 88 + 0x33 bytes    C++
kernel32.dll!_HeapFree@12()  + 0x14 bytes   
msvcr120.dll!free(void * pBlock)  Line 51   C
00000005()  
...

But WinDbg displays something completely different:

ntdll!NtGetContextThread+0x12
KERNELBASE!CloseHandle+0x2d
kernel32!CloseHandleImplementation+0x3f
dbghelp!Win32LiveSystemProvider::OpenMapping+0x1fe
0xd100000
ntdll!RtlpFreeHeap+0xbb1
ntdll!RtlFreeHeap+0x142
KERNELBASE!CloseHandle+0x2d
atiadlxy+0x10004
0x24548dc9
0x15ff6404

Do you have any idea what goes wrong and how to make WinDbg display the same call stack of the main thread?

Thanks

Upvotes: 1

Views: 1387

Answers (1)

magicandre1981
magicandre1981

Reputation: 28776

You have to use .ecxr first to get the exception record data and next run the stack commands like kP:

 .ecxr ; kP

Upvotes: 3

Related Questions