我要调试matlab中使用的命令。一些问题:

  1. 如果选择一堆,是否有可能跳跃到一个特定的堆,而不是直接的移动一堆之后的另一个使用dbup和dbdown?
  2. 后跳跃到一个中间叠,如果我执行一些命令,为什么它自动返回内最栈?我可以留在中间叠,直到我发出的命令离开另一个堆栈?
有帮助吗?

解决方案

1)不从键盘。如果你使用的编辑和编辑工具栏显示,有一个"堆"拉那显示了你整个叫叠,你可以跳到任意的水平。你可以破解n级dbup/dbdown一起看看是什么拉,但是调试器的控制是非常困难的脚本Matlab由于交互作用的调试器和M码你用脚本。

2)如果发出命令"K>>"调试器提示,当时它完成它应该回你的叠的水平,你颁发的,像你这样的期望。你还有断点定在底层代码?也许你实际看到一个次级调试器"K>>"的提示从一个断点的套式呼堆。你基本上可以有多种嵌套调试器的情况。

例如:

function f1
f2();
function f2()
f3();
function f3()
f4();
function f4()
disp('Hello world');

如果你把它扔在调试器,这样,你会打断点在底部的一个叫堆这本身就是推出了自原始调试器届会议。

>> dbstop in f1 at 8
>> f1()
8   disp('Hello world');
K>> dbup
In workspace belonging to f1>f3 at 6
K>> dbup
In workspace belonging to f1>f2 at 4
K>> f1()
8   disp('Hello world');
K>> dbstack
> In f1>f4 at 8
  In f1>f3 at 6
  In f1>f2 at 4
  In f1 at 2
  In f1>f4 at 8
  In f1>f3 at 6
  In f1>f2 at 4
  In f1 at 2
K>> 

做一个dbquit(出的嵌套调试器届会议)让你回到中的原话堆在你离开的。

K>> dbquit
K>> dbstack
  In f1>f4 at 8
  In f1>f3 at 6
> In f1>f2 at 4
  In f1 at 2
K>> 

如果你dbcont出你的"K>>",则控制流程将恢复从底部呼叫堆,那里的断点是最初提出,不论什么堆框架K>>的。你不能使用调试,以改变的控制流动的主流码正在执行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top