首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试GNU倍频程:在dbup之后使用dbnext

调试GNU倍频程:在dbup之后使用dbnext
EN

Stack Overflow用户
提问于 2013-11-13 11:03:20
回答 1查看 109关注 0票数 1

我在用GNU octave 3.6.4。根据变化率g(v3.2)

使用dbup和dbdown上下移动调用堆栈,现在可以工作了。

但是,当我处于调试模式下,然后是dbup,然后是dbnext,下一帧中的下一行将被执行。为何会这样,又如何避免呢?

代码语言:javascript
复制
octave -q
 octave:1> myfunc_base(2,3)
 stopped in /home/seb/octave/myfunc.m at line 5
 5:   keyboard
 debug> dbstack
 stopped in:
   -->      myfunc at line 5 [/home/seb/octave/myfunc.m]
            myfunc_base at line 4 [/home/seb/octave/myfunc_base.m]
 debug> dbup
 stopped in myfunc_base at line 4 % <-- looks good!
 debug> dbnext
 stopped in /home/seb/octave/myfunc.m at line 6 % <-- damn this is the old frame!
 6:   sp = a + temp;
 debug> 

这两个测试功能:

myfunc.m

代码语言:javascript
复制
function sp = myfunc (a, b, c)

  temp = b+c;
  keyboard
  sp = a + temp;

end 

myfunc_base.m

代码语言:javascript
复制
function sp = myfunc_base (aa, bb)

  temp = myfunc(aa, aa, bb);
  sp = aa + temp;

end 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 11:36:42

要想走出困境,您必须使用dbstep out。这与matlab的行为相匹配,其他的一切都会非常奇怪。如果出现异常,则不能跳转到堆栈任何级别上的下一行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19952024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档