2013-03-11 88 views
0

對於調試,我希望能夠打印消息,並預留行號。不,我不想參與一個全面的調試器。打印行號

我已經定義一個全局常量ln="thisline = new Error().lineNumber";

我已經定義了一個

function println(msg) { 
    document.write("<br>at " + thisline + ":" + msg); 
} 
在我想調試我把行說行

然後:

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

的問題是那thisline往往不會在打印前得到更新,所以我得到了一個不變的行號長的延伸。我從來沒有得到超過3個獨特的行號印。

這只是eval太慢嗎?有什麼方法可以等到它完成? 我嘗試了超時:

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

但全球thisline從來沒有得到設定。

或者是我可以提出的錯誤數量有一些系統限制?

+7

你知道[中已經有您的瀏覽器控制檯(https://developers.google.com/chrome-developer- tools/docs/console),console.log輸出行號(和整個堆棧)? – 2013-03-11 08:12:44

回答

0

如果您在IE中運行應用程序,然後按F12鍵(開發人員工具),另一個彈出窗口將打開。

單擊腳本選項卡並單擊開始調試按鈕。

頁面將刷新,您可以開始執行操作。

如有任何錯誤,調試器會自動帶您到錯誤行號。你也可以放置中斷點。

否則,你可以看看下面的下面的帖子:

How can I get a Javascript stack trace when I throw an exception?