~e (Thread-Specific Command)

The ~e command executes one or more commands for a specific thread or for all threads in the target process.

Do not confuse this command with the e (Enter Values) command.

~Thread e CommandString


Specifies the thread or threads that the debugger will execute CommandString for. For more information about the syntax, see Thread Syntax.

Specifies one or more commands to execute. You should separate multiple commands by using semicolons. CommandString includes the rest of the input line. All of the text that follows the letter "e" is interpreted as part of this string. Do not enclose CommandString in quotation marks.



User mode only


Live, crash dump



Additional Information

For more information about other commands that control threads, see Controlling Processes and Threads.


You can specify threads only in user mode. In kernel mode, the tilde (~) refers to a processor.

When you use the ~e command together with one thread, the ~e command only saves some typing. For example, the following two commands are equivalent.

0:000> ~2e r; k; kd 

0:000> ~2r; ~2k; ~2kd 

However, you can use the ~e qualifier to repeat a command or extension command several times. When you use the qualifier in this manner, it can eliminate extra typing. For example, the following command repeats the !gle extension command for every thread that you are debugging.

0:000> ~*e !gle 

If an error occurs in the execution of one command, execution continues with the next command.

You cannot use the ~e qualifier together with execution commands (g, gh, gn, gN, gu, p, pa, pc, t, ta, tb, tc, wt).

You cannot use the ~e qualifier together with the j (Execute If-Else) or z (Execute While) conditional commands.

If you are debugging more than one process, you cannot use the ~e command to access the virtual memory space for a inactive process.