How can I pass control back to the MATLAB command prompt after keyboard command?

9 vues (au cours des 30 derniers jours)
K E
K E le 20 Avr 2016
Commenté : dpb le 2 Fév 2018
I am debugging some code and have inserted a keyboard command into a loop. The code generates a figure, then when it hits the keyboard command control is passed to the editor (if I start typing, text appears in the code). Instead I would like to pass control to the command window after the keyboard command (if I start typing, text would appear at the command prompt). I tried using commandwindow before the keyboard command, but that did not seem to override the keyboard command's default of passing control to the code. What do you suggest?
for i = 1:50
figure;
commandwindow;
keyboard;
end
  2 commentaires
Donna Calhoun
Donna Calhoun le 10 Déc 2017
Before version 2017a, the script below would immediately return control to the prompt. But starting with 2017a, this script returns control to the editor the first time the keyboard statement is hit; the second time, though, control is returned to the prompt.
This is really annoying, because we use this feature in a library routine. As the OP pointed out, immediately typing upon hitting 'k' (in the example below) edits the library file (our 'key_test.m') file. One has to then undo any typing in the library file that was inadvertently edited, then click to focus on the command window.
% key_test.m
inp = 'k';
while(strcmp(inp,'k'))
inp = input('Input k or q : ','s');
switch inp
case 'k'
keyboard;
case 'q'
return
end
end
Is there any chance this will be fixed? Or is this now a "feature"?
dpb
dpb le 2 Fév 2018
While some age on it; issues still abound...
R2016b/Win 7 (and I think earlier are same) when the breakpoint in editor is reached focus is switched to the editor window while the debug prompt appears in the command window. Invariably, one wants focus in the command window but typing as noted above immediately destroys the existing file.
To make matters even worse, now a CTRL-Z to undo will go PAST the changes made to those prior to the previous SAVE so you can actually undo previous corrections.
All in all, a complete cock-up and why, in general, tended to not use the Matlab editor/debug facility nearly as much as could.

Connectez-vous pour commenter.

Réponses (1)

per isakson
per isakson le 21 Avr 2016
Modifié(e) : per isakson le 21 Avr 2016
I failed to make my system, R2016a on Win7, behave as you describe. On the contrary it behaves exactly as you want it to do.
The command, keyboard, makes Matlab switch to debug-mode and if I start typing text it appears in the command window after the prompt, K>>. When I move the cursor over the editor window it switches to the spinning wheel. Clicking in the editor allows me to type code. &nbsp
  4 commentaires
per isakson
per isakson le 21 Avr 2016
Modifié(e) : per isakson le 22 Avr 2016
Now I have tried your example with commandwindow.
I just typed cssm and then dbcont three times without touching the mouse. Same behavior when I started with&nbsp Run Selection. This example shows expected and wanted behavior on my system, R2016a on Win7.
>> cssm
K>> dbcont
K>> dbcont
K>> dbcont
>>
where
function cssm()
for jj = 1:3
figure;
commandwindow
keyboard
end
end
K E
K E le 22 Avr 2016
If you are getting the desired behavior (control passed to the command window) on R2016a, and I am not on R2015b/Win 7, I will see if this will be fixed by updating my version.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Desktop dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by