One little known feature of the Visual Studio debugger is how to list the callstacks of all threads.
Example output:>Debug.ListCallStack /AllThreadsCallstack for Thread 1 (Thread Id: 4440 (0x1158)): Index Function--------------------------------------------------------------------------------*1 Fibonacci.exe!Fibonacci(void * vn=0x00000001) 2 Fibonacci.exe!Fibonacci(void * vn=0x00000003) 3 Fibonacci.exe!Fibonacci(void * vn=0x00000004) 4 Fibonacci.exe!Fibonacci(void * vn=0x00000005) 5 Fibonacci.exe!Fibonacci(void * vn=0x00000007) 6 Fibonacci.exe!Fibonacci(void * vn=0x00000008) 7 Fibonacci.exe!Fibonacci(void * vn=0x0000000a) 8 Fibonacci.exe!Fibonacci(void * vn=0x0000000c) 9 Fibonacci.exe!Fibonacci(void * vn=0x0000000e) 10 Fibonacci.exe!Fibonacci(void * vn=0x00000010) 11 Fibonacci.exe!Fibonacci(void * vn=0x00000012) 12 Fibonacci.exe!Fibonacci(void * vn=0x00000014) 13 Fibonacci.exe!main() 14 Fibonacci.exe!__tmainCRTStartup() 15 Fibonacci.exe!mainCRTStartup() 16 kernel32.dll!7d4e6e1a() 17 [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
Callstack for Thread 2 (Thread Id: 4892 (0x131c)): Index Function-------------------------------------------------------------------------------- 1 ntdll.dll!7d61f1de() 2 [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 3 ntdll.dll!7d627207() 4 ntdll.dll!7d6271a2() 5 ntdll.dll!7d627372() 6 ntdll.dll!7d621818() 7 ntdll.dll!7d62176f() 8 ntdll.dll!7d62717a() 9 msvcr80d.dll!_heap_alloc_dbg(unsigned int nSize=5503884, int nBlockUse=0, const char * szFileName=0x0053fba0, int nLine=1) 10 ntdll.dll!7d626f58() 11 kernel32.dll!7d4dae28() 12 msvcr80d.dll!_decode_pointer(void * codedptr=0x1cfb4445) 13 msvcr80d.dll!__CRTDLL_INIT(void * hDllHandle=0x10200000, unsigned long dwReason=2, void * lpreserved=0x00000000) 14 msvcr80d.dll!_CRTDLL_INIT(void * hDllHandle=0x10200000, unsigned long dwReason=2, void * lpreserved=0x00000000) 15 ntdll.dll!7d610024() 16 ntdll.dll!7d627be5() 17 ntdll.dll!7d627bbf() 18 ntdll.dll!7d627a6b() 19 ntdll.dll!7d61e99d()
Callstack for Thread 3 (Thread Id: 4444 (0x115c)): Index Function-------------------------------------------------------------------------------- 1 ntdll.dll!7d61c824() 2 [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 3 ntdll.dll!7d62882f() 4 ntdll.dll!7d62887f() 5 ntdll.dll!7d627b28() 6 ntdll.dll!7d627a6b() 7 ntdll.dll!7d61e99d()
>Debug.SetCurrentThread 1