Я ищу способ сохранить 'все' в сеансе Matlab, когда он остановлен для отладки.
Пример
function funmain
a=1;
if a>1
funsub(1)
end
funsub(2)
end
function funsub(c)
b = c + 1;
funsubsub(c)
end
function funsubsub(c)
c = c + 2; %Line with breakpoint
end
Когда я, наконец, дохожу до строки с точкой останова, я могу легко перемещаться по всем рабочим пространствам и видеть, где выполняются все вызовы функций.
Вопрос
Как я могу сохранить эту ситуацию?
При отладке вложенных программ, выполнение которых занимает много времени, я часто обнаруживаю, что подолгу жду достижения точки останова. А иногда мне просто нужно закрыть матлаб, или я хочу попробовать что-то, а потом вернуться к этому моменту, поэтому найти способ сохранить это состояние было бы весьма желательно. Я работаю в Windows Server 2008, но предпочел бы независимое от платформы решение, не требующее установки какого-либо программного обеспечения.
Что я пробовал
<сильный>1. Сохранение всех переменных в рабочей области: иногда это работает, но часто мне также нужно перемещаться по другим рабочим областям.
<сильный>2. Сохранение всех переменных в вызывающей рабочей области: это уже лучше, так как я могу снова запустить самую низкую функцию, но этого может быть недостаточно. Делать это для всех вложенных рабочих областей не очень удобно, а навигация по сохраненным рабочим областям может быть еще хуже.
Помимо упомянутых неудобств, это также не позволяет мне увидеть точный маршрут, по которому достигается точка останова. Поэтому я надеюсь, что есть лучшее решение!
Пример структуры кода
Код выглядит примерно так
function fmain
fsub1()
fsub2()
fsub3()
end
function fsub1
fsubsub11
fsubsub12
...
fsubsub19
end
function fsub2
fsubsub21
fsubsub22
...
fsubsub29
end
function fsub3
fsubsub31
fsubsub32
...
fsubsub39
end
function fsubsub29
fsubsubsub291
fsubsubsub292% The break may occur in here
...
fsubsubsub299
Разрыв, конечно, может произойти где угодно, и обычно я мог бы перемещаться по рабочему пространству и всему, что над ним.
crtools
. А вот про окна не знаю. - person Acorbe   schedule 02.05.2014