2011-11-30 57 views

回答

2

您可以通過以下獲得堆棧跟蹤:

(new Error).stack; 

然後,您可以使用正則表達式過濾掉的行號:http://jsfiddle.net/8wA74/

var stack = (new Error).stack.split("\n"), 
    line = /:(\d+):/.exec(stack[1]); // 1 is stack depth, format is "url:line:char" 

console.log("Current function was called on line " + line[1]); 
// this 1 is the number of the group in regexp 
+0

感謝@ pimvdb,這在一定程度上是有幫助的,雖然它實際上給我的地方(新錯誤),而不是包含該功能的函數被調用。 –

+0

@Jimmy_Bob:然後,您可以嘗試將'stack [1]'更改爲'stack [2]',這是堆棧跟蹤中更深的一級。 – pimvdb

+0

哦,我明白了......謝謝你的幫助! –

1

不是我知道的,但不是可以設置斷點嗎?這肯定有一個堆棧跟蹤可見。

只要嘗試單擊開發中的linenumber。控制檯,它會顯示一個藍色的箭頭,下一次它會打到它會顯示堆棧跟蹤。

+0

感謝你,我敢肯定,斷點比控制檯日誌記錄更容易,當我得到他們的掛鉤 –