2

我尝试在数据步骤中使用 /DEBUG 在 UNIX 上调试 SAS 批处理程序,但由于 /DEBUG 只能在交互模式下使用,它会引发错误。错误消息:错误:无法打开 X 显示。检查显示名称/服务器访问授权。

错误:无法初始化 DATA STEP 调试器环境。

然后我开始使用 put ( all )(=);运行 SAS 代码。但这会创建一个非常大的日志文件。当出现数据错误时,是否有任何其他方法可以调试 SAS 代码而不是在日志中打印ERRORN变量。

谢谢,库马尔。

4

2 回答 2

1

我刚刚遇到http://www2.sas.com/proceedings/sugi25/25/btu/25p052.pdf,它讨论了通过 /LDEBUG 开关在批处理模式下使用调试器。我不知道/认为/想象这是可能的。

pT

于 2013-09-05T21:45:21.913 回答
0

你当然可以智能调试;这意味着,找出可能出错的地方,并使用PUT语句来查看这些变量。

您不必将其限制在日志中;例如,我可以通过创建包含明显错误的 WHERE 语句的数据集来调试我的数据(在我所做的事情中,在我完成第一次迭代之后,数据比我的程序更可能是“错误的”)给定正确的数据,因此如果它包含一行,则表明存在问题-然后PROC PRINT该数据集具有明显的标题(“错误,有数据,不应该因为*原因*”)。

在解决数据步骤如何不适用于您的特定程序方面,您可以PUT在几个不同的地方进行一次迭代的日志记录 - 设置 OBS=1 然后运行(如果这可能基于您的程序) . 或者在数据步骤中的每一步输出到数据集,这样您就可以在数据集中而不是在日志中看到进度。

于 2013-09-03T19:37:16.897 回答