跟踪 Ada 程序的执行

Tracing execution of an Ada program

Ada/GNAT 是否支持出于调试目的自动跟踪程序(或选定的 packages/procedures/functions)的执行?我对记录器包不感兴趣。

想象一下,在一个真正的旧 Ada 项目上工作并使用调试器单步执行代码不是一种选择。在我看来,添加文本输出通常有助于理解代码:

if A and B or C then
   Ada.Text_IO.Put_Line ("1");

   [...]
else
   Ada.Text_IO.Put_Line ("2");

   [...]
end if;

但是添加这样的文本输出是一个手动过程,在复杂的代码上完成它需要时间。

您可能想看看 rr。我自己从未使用过它,但它可能与 Ada 一起使用。