我有兩個應該運行相同的程序。他們不是。我想看看他們的執行發生在哪裏。在Chrome或Firefox或Safari中有沒有一個選項可以在執行時記錄/回顯每一行JavaScript?或者其他一些方法來做到這一點手動添加每隔幾行console.log?注意:分歧是10k或20k,可能是10萬行深,理想情況下我希望它能打印類似於Chrome開發工具的變量。有沒有辦法在執行JavaScript時回顯每一行JavaScript?
然後,我可以只轉儲日誌,找到發散
通過在調試器中調試代碼是不是因爲它會需要幾個小時甚至幾天步遠的解決方案。
一個想法是使用babel或uglify插件來使用最後一行爲每行發出代碼來打印它將要做什麼或剛剛做了什麼。
另一個想法是如果有一種方法可以從js轉儲所有內存,以便我可以比較所有對象和所有引用。他們應該是相同的,所以當我看到兩個不同的轉儲時,我會發現我的錯誤。注意:JSON.stringify不是一個選項,因爲我需要查看所有變量/對象/類等
注意:我不是在尋找像「使用console.log」或「調試器中的步驟」這樣的基本答案, 。我很感激這個幫助,也許我忽略了一些簡單的東西,但是我確實有很多JavaScript體驗。
也許一個例子會有所幫助。想象一下,您的應用程序的源代碼與Google文檔一樣大。你在它上面運行一些處理器,不應該破壞任何東西或改變任何東西。除了它。你看看這些變化,看不出有什麼不對。你所知道的是,當你運行它時,它會運行,但有幾件事情會被微妙地破壞。所以你在那裏放一個斷點,看看數據是不好的。但是它什麼時候變壞?你不知道代碼(你剛剛得到它)。它可能已經是數千行之前的100多行了。你不知道在哪裏放置斷點或console.logs。這可能需要幾周時間。但是,如果您知道代碼應該完全相同,如果您可以打印所有執行行,您會在幾分鐘而不是幾天內找到該錯誤。
沒有,但你可以設置一個破發點,並通過代碼走或手動添加的console.log線。 – epascarello
您可以閱讀[Chrome開發者工具步驟代碼](https://developers.google.com/web/tools/chrome-devtools/javascript/step-code) –
使用調試器和二進制搜索來找到偏差點應該可行。 – Bergi