0

对于调试,我希望能够打印消息,并在前面加上行号。不,我不想参与成熟的调试器。

我已经定义了一个全局常量ln="thisline = new Error().lineNumber";

我定义了一个

function println(msg) { 
    document.write("<br>at " + thisline + ":" + msg);
}

然后在我想调试的行中,我写了一行:

eval(ln);
println("msg");

问题是它thisline通常不会在打印之前得到更新,所以我得到了一个不变的行号。我打印的唯一行号永远不会超过 3 个。

仅仅是评估太慢了吗?有什么方法可以等到它完成吗?我尝试了超时:

const ln="setTimeout(function() { 
    thisline = new Error().lineNumber
}, 1000);"

但全局thisline从未设置。

还是我可以提出的错误数量有一些系统限制?

4

1 回答 1

0

如果您在 IE 中运行应用程序,请按 F12 键(开发人员工具),将打开另一个弹出窗口。

单击脚本选项卡,然后单击开始调试按钮。

页面将刷新,您可以开始执行操作。

出现任何错误时,调试器会自动将您带到错误行号。你也可以放置断点。

否则你可以看看下面的帖子:

抛出异常时如何获取 Javascript 堆栈跟踪?

于 2013-03-11T08:26:16.290 回答