我在Octave的某些内部库函数中出现故障。我想调试调用函数,但我不知道该怎么做。
如何查看堆栈跟踪?
如何在帧之间移动?
答案 0 :(得分:1)
编辑 - dbup()
, dbdown()
, and dbstack()
在Octave 3.2及更高版本中可用。 http://www.gnu.org/software/octave/doc/interpreter/Debugging.html#Debugging
旧回答
我不知道如何显示callstack。一旦我处于调试模式,我使用dbstep()
and dbnext()
分别进入下一行,然后编写调用。此外,您还可以使用dbwhere()
和dbtype()
查看附近的代码行。这绝对是MATLAB领先于Octave的一个领域。
答案 1 :(得分:1)
直到今天,octave GUI(至少 5.2.0)仍然没有显示调用堆栈。不过,您可以在 VS 代码中运行 Octave 调试器,并在那里查看堆栈跟踪。我用过它,效果很好。目前实际上有两个 Octave 调试器插件可用于 VS 代码。我发现 Silva 的工作稍好一些,另一个似乎并没有总是关闭调试器进程。在launch.json中使用类似的东西:
"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 插件,我认为存在某种机制使八度音程 cli 并不总是关闭。如果您尝试在 VS 代码中启动调试器但没有任何反应,请检查进程并在必要时终止。