<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 調試器 ~~~ 穩定度: 3 - 穩定 ~~~ V8 提供了一個強大的調試器,可以通過 [TCP 協議](http://code.google.com/p/v8/wiki/DebuggerProtocol)從外部訪問。Node 內建了這個調試器的客戶端。要使用調試器,以 `debug` 參數啟動 Node,出現提示符: ~~~ % node debug myscript.js < debugger listening on port 5858 connecting... ok break in /home/indutny/Code/git/indutny/myscript.js:1 1 x = 5; 2 setTimeout(function () { 3 debugger; debug> ~~~ Node 的調試器客戶端并未完整支持所有命令,但簡單的步進和檢查是可行的。通過腳本的源代碼中放置 `debugger;` 語句,您便可啟用一個斷點。 比如,假設有一個類似這樣的 `myscript.js`: ~~~ // myscript.js x = 5; setTimeout(function () { debugger; console.log("world"); }, 1000); console.log("hello"); ~~~ 那么,當調試器運行時,它會在第 4 行中斷: ~~~ % node debug myscript.js < debugger listening on port 5858 connecting... ok break in /home/indutny/Code/git/indutny/myscript.js:1 1 x = 5; 2 setTimeout(function () { 3 debugger; debug> cont < hello break in /home/indutny/Code/git/indutny/myscript.js:3 1 x = 5; 2 setTimeout(function () { 3 debugger; 4 console.log("world"); 5 }, 1000); debug> next break in /home/indutny/Code/git/indutny/myscript.js:4 2 setTimeout(function () { 3 debugger; 4 console.log("world"); 5 }, 1000); 6 console.log("hello"); debug> repl Press Ctrl + C to leave debug repl > x 5 > 2+2 4 debug> next < world break in /home/indutny/Code/git/indutny/myscript.js:5 3 debugger; 4 console.log("world"); 5 }, 1000); 6 console.log("hello"); 7 debug> quit % ~~~ `repl` 命令允許您遠程執行代碼;`next` 命令步進到下一行。此外還有一些其它命令,輸入 `help` 查看。 ### 監視器 調試代碼時您可以監視表達式或變量值。在每個斷點中監視器列表中的各個表達式會被以當前上下文執行,并在斷點的源代碼前顯示。 輸入 `watch("my_expression")` 開始監視一個表達式;`watchers` 顯示活動監視器;`unwatch("my_expression")` 移除一個監視器。 ### 命令參考 ### 步進 - `cont`, `c` - 繼續執行 - `next`, `n` - Step next - `step`, `s` - Step in - `out`, `o` - Step out - `pause` - 暫停執行代碼(類似開發者工具中的暫停按鈕) ### 斷點 - `setBreakpoint()`, `sb()` - 在當前行設置斷點 - `setBreakpoint(line)`, `sb(line)` - 在指定行設置斷點 - `setBreakpoint('fn()')`, `sb(...)` - 在函數體的第一條語句設置斷點 - `setBreakpoint('script.js', 1)`, `sb(...)` - 在 script.js 的第一行設置斷點 - `clearBreakpoint`, `cb(...)` - 清除斷點 在一個尚未被加載的文件(模塊)中設置斷點也是可行的: ~~~ % ./node debug test/fixtures/break-in-module/main.js < debugger listening on port 5858 connecting to port 5858... ok break in test/fixtures/break-in-module/main.js:1 1 var mod = require('./mod.js'); 2 mod.hello(); 3 mod.hello(); debug> setBreakpoint('mod.js', 23) Warning: script 'mod.js' was not loaded yet. 1 var mod = require('./mod.js'); 2 mod.hello(); 3 mod.hello(); debug> c break in test/fixtures/break-in-module/mod.js:23 21 22 exports.hello = function() { 23 return 'hello from module'; 24 }; 25 debug> ~~~ ### 信息 - `backtrace`, `bt` - 顯示當前執行框架的回溯 - `list(5)` - 顯示腳本源代碼的 5 行上下文(之前 5 行和之后 5 行) - `watch(expr)` - 向監視列表添加表達式 - `unwatch(expr)` - 從監視列表移除表達式 - `watchers` - 列出所有監視器和它們的值(每個斷點會自動列出) - `repl` - 在所調試的腳本的上下文中打開調試器的 repl 執行代碼 ### 執行控制 - `run` - 運行腳本(調試器開始時自動運行) - `restart` - 重新運行腳本 - `kill` - 終止腳本 ### 雜項 - `scripts` - 列出所有已加載的腳本 - `version` - 顯示 V8 的版本 ### 高級使用 V8 調試器可以從兩種方式啟用和訪問:以 `--debug` 命令行標志啟動 Node;或者向已存在的 Node 進程發送 `SIGUSR1` 信號。 一旦一個進程進入了調試模式,它便可被 Node 調試器連接。調試器可以通過 `pid` 或 URI 來連接,語法是: - `node debug -p <pid>` - 通過 `pid` 連接進程 - `node debug <URI>` - 通過類似 localhost:5858 的 URI 連接進程
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看