In gdb 6.8, typing CLI commands in MI session does not produce either *running, or ^running or *stopped messages. I've checked in some patches previous to improve that, but *stopped turns out to be not finished yet -- when in non-async mode, CLI commands such as 'continue' result in *stopped, but it has no frame information. The reason is that *stopped is printed by normal_stop observer, and the frame information is printed by normal_stop function, in infrun.c. When a CLI command is executed, we switch to the CLI interpreter and CLI uiout. In async mode, the command execution is done, we switch back to MI uiout, and then we handle stop event, so infrun.c:normal_stop prints frame into MI uiout and then MI observer puts that data out. In sync mode, however, infrun.c:normal_stop is called when the uiout is still CLI uiout, and then MI observer does not have any way to access the fields printed into CLI uiout. This patch fixes this by making MI observer print frame again, into MI uiout, if necessary. It passes all MI tests in (sync,async)x(native,gdbserver) combinations. How does this look, and are non-MI changes OK? If approved, I'll add a test that CLI commands result in proper *stopped. Thanks, Volodya