When debugging, most of the time, if not all the time, we have to see all stacks for all threads or set the context for a specific thread in order to analyze it. To do that we use the ~ command and according to the WinDbg documentation we have these variants:
|~.||Identifies the current thread|
|~#||Identifies the thread that caused the current debug event or exception|
|~*||Identifies all threads in the process|
|~Number||Identifies the Number thread|
|~~[TID]||Identifies the thread with TID (Thread ID)|
This command is very easy to use, but it has some nuances. Note that the s after the thread number, in examples below, forces the debugger to change the thread context. In other words, all k* commands are going to operate on the new ...