Reputation:
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
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