我在Octave中的某个内部库函数中有一个错误。我想调试调用函数,但我不知道如何做。
mi7gmzs61#
编辑-dbup() , dbdown() , and dbstack()在Octave 3.2及更高版本中可用。http://www.gnu.org/software/octave/doc/interpreter/Debugging.html#Debugging
dbup()
dbdown()
dbstack()
"老答案"我不知道如何显示调用堆栈。一旦我进入调试模式,我使用dbstep()和dbnext()分别进入和跳过下一行,并编写调用。另外,你可以看到附近的代码行使用dbwhere()和dbtype()。这绝对是MATLAB领先于Octave的一个方面。
dbstep()
dbnext()
dbwhere()
dbtype()
vhmi4jdf2#
直到今天,八度音程GUI(至少5.2.0)仍然没有显示调用堆栈。不过你可以在VS代码中运行octave调试器,并在那里看到堆栈跟踪。我用过它,它工作得很好。目前实际上有两个octave调试器插件可用于VS代码。我发现Silva的工作得稍微好一点,另一个似乎并不总是关闭调试器进程。
"version": "0.2.0", "configurations": [ { "type": "OctaveDebugger", "request": "launch", "name": "octave debug", "octave": "octave-cli", "sourceFolder": "${workspaceFolder}:/home/username/src/octave", "workingDirectory": "${workspaceFolder}", "program": "yourprogram('stringarg')" } ]
也就是说octave cli调试器的可执行文件也应该在unix路径上。即使有Silva插件,我认为也有一些机制使octave-cli不总是关闭。如果你试图在VS代码中启动调试器,但没有任何React,请检查进程并在必要时杀死。
inn6fuwd3#
我知道这是一个老问题,但为了防止其他人问到这个问题,我添加了答案。dbstack打印当前堆栈信息dbup在堆栈中向上一步dbdown在堆栈中向下一步返回
3条答案
按热度按时间mi7gmzs61#
编辑-
dbup()
,dbdown()
, anddbstack()
在Octave 3.2及更高版本中可用。http://www.gnu.org/software/octave/doc/interpreter/Debugging.html#Debugging"老答案"
我不知道如何显示调用堆栈。一旦我进入调试模式,我使用
dbstep()
和dbnext()
分别进入和跳过下一行,并编写调用。另外,你可以看到附近的代码行使用dbwhere()
和dbtype()
。这绝对是MATLAB领先于Octave的一个方面。vhmi4jdf2#
直到今天,八度音程GUI(至少5.2.0)仍然没有显示调用堆栈。不过你可以在VS代码中运行octave调试器,并在那里看到堆栈跟踪。我用过它,它工作得很好。目前实际上有两个octave调试器插件可用于VS代码。我发现Silva的工作得稍微好一点,另一个似乎并不总是关闭调试器进程。
也就是说octave cli调试器的可执行文件也应该在unix路径上。即使有Silva插件,我认为也有一些机制使octave-cli不总是关闭。如果你试图在VS代码中启动调试器,但没有任何React,请检查进程并在必要时杀死。
inn6fuwd3#
我知道这是一个老问题,但为了防止其他人问到这个问题,我添加了答案。dbstack打印当前堆栈信息dbup在堆栈中向上一步dbdown在堆栈中向下一步返回