Stata具有非常有用的调试功能,例如trace
命令,它使程序员可以使用其解释的ado
语言来跟踪有问题的代码行。
我想知道mata
是否有类似之处?
考虑这个玩具示例:
mata:
void function foo(a, b)
{
c = J(a, b, 5)
c = c + 5
}
end
. mata
--------------------------------------- mata (type end to exit) ---------------------------
: foo(3,4)
foo(): 3200 conformability error
<istmt>: - function returned error
r(3200);
: end
-------------------------------------------------------------------------------------------
未记录的matadebug
模式似乎没有更多信息:
. set matadebug on
. mata
--------------------------------------- mata (type end to exit) ---------------------------
: foo(3,4)
execution begins..
foo(): 3200 conformability error {29}
<istmt>: - function returned error {17}
r(3200);
: end
-------------------------------------------------------------------------------------------
方括号{29}
,{17}
似乎没有任何有意义的含义。
在执行编译后的代码时,有没有办法以编程方式跟踪有问题的部分?
答案 0 :(得分:0)
看来,在yum
中,唯一类似于Stata的mata
命令的功能是trace
模式:
matalnum
在这种情况下,. set matalnum on
. mata: foo(3,4)
foo(): 3200 conformability error [5]
<istmt>: - function returned error [1]
r(3200);
表示发生错误的行号。