ph (Step to Next Branching Instruction)
The ph command executes the program until any kind of branching instruction is reached, including conditional or unconditional branches, calls, returns, and system calls.
[~Thread] ph [r] [= StartAddress] [Count]
ph [r] [= StartAddress] [Count]
Specifies threads to continue executing. All other threads are frozen. For more information about the syntax, see Thread Syntax. You can specify threads only in user mode.
Turns on and off the display of registers and flags. By default, the registers and flags are displayed. You can disable register display by using the phr, pr, tr, or .prompt_allow -reg commands. All of these commands control the same setting and you can use any of them to override any previous use of these commands.
You can also disable register display by using the l-os command. This setting is separate from the other three commands. To control which registers and flags are displayed, use the rm (Register Mask) command.
Specifies the address where the debugger begins execution. Otherwise, the debugger begins at the instruction that the instruction pointer points to. For more information about the syntax, see Address and Address Range Syntax.
Specifies the number of branching instructions that must be encountered for this command to stop. The default value is one.
User mode, kernel mode
Live debugging only
For more information about related commands, see Controlling the Target.
The ph command causes the target to begin executing. This execution continues until a branching instruction is reached or a breakpoint is encountered.
If the program counter is already on a branching instruction, the entire branching instruction is executed. After this branching instruction is returned, execution continues until another branching instruction is reached. This execution, rather than tracing, of the call is the only difference between ph and th (Trace to Next Branching Instruction).
In source mode, you can associate one source line with multiple assembly instructions. The ph command does not stop at a branching instruction that is associated with the current source line.