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}
, похоже, не указывают на что-либо значимое.
Есть ли способ программно отслеживать проблемные части при выполнении скомпилированного кода?