【轉】node.exe調試JavaScript代碼

來源:互聯網
上載者:User

標籤:ack   執行流程   evel   tcp   .exe   remove   lines   bre   expr   

node.exe調試JavaScript代碼目的:

  Console.log可以列印一些資訊,光有log還不夠,當程式出現問題時通過log可以定位到錯誤位置,但是當我們想查看錯誤現場的變數時,log就無能為力了,一般情況下我們不會把所有的變數都列印出來。此時就需要斷點的功能了,在程式裡邊打上斷點,直接定位到錯誤位置,分析錯誤現場確認錯誤原因。

三種模式:

  nodejs內部提供一個debug機制,可以讓程式進入debug模式,供開發人員一步一步分析代碼發現問題。

  共有3中啟動參數可以讓程式進入debug模式

  node debug app.js

  node --debug app.js

  node --debug -brk app.js

  3種模式在調試形式上有一定區別。

1.node debug app.js

  1).這種方式啟動程式,程式會進入debug模式,並運行到開機檔案的第1行就停止,等待開發人員下發往下走的命令

  2).這種方式啟動程式,直接在當前cmd中進入偵錯模式

2.node --debug app.js

  1).這種方式啟動程式,程式會進入debug模式,並運行完所有代碼。這種啟動方式往往用於程式啟動的過程中不需要調試,通過觸發時間進入回呼函數的情況,比如在某個http請求中打上斷點,等待用戶端訪問後進入斷點

  2).這種方式啟動程式,會開啟一個TCP的連接埠監聽,在本cmd中不進入偵錯模式,需要另外開啟終端用node debug 命令串連調試連接埠

    命令為 node debug localhost debug連接埠

    或者   node debug p node進程id

3.node --debug-brk app.js

  1).這種方式啟動程式,程式會進入debug模式,但是不會運行代碼,直到有一個終端串連到了debug連接埠,才開始執行代碼,並在第1行進入斷點

  2).這種方式啟動程式,會開啟一個TCP的連接埠監聽,在本cmd中不進入偵錯模式,需要另外開啟終端用node debug 命令串連調試連接埠

進入debug模式後,可以通過一些命令來設定斷點、取消斷點以及控製程序執行流程

常用命令:1.流程式控制制相關
  • cont, c - Continue execution
  • next, n - Step next
  • step, s - Step in
  • out, o - Step out
  • pause - Pause running code (like pause button in Developer Tools)
2. 斷點設定取消相關
  • setBreakpoint(), sb() - Set breakpoint on current line
  • setBreakpoint(line), sb(line) - Set breakpoint on specific line
  • setBreakpoint(‘fn()‘), sb(...) - Set breakpoint on a first statement in functions body
  • setBreakpoint(‘script.js‘, 1), sb(...) - Set breakpoint on first line of script.js
  • clearBreakpoint(‘script.js‘, 1), cb(...) - Clear breakpoint in script.js on line 1
3. 變數查看相關
  • backtrace, bt - Print backtrace of current execution frame
  • list(5) - List scripts source code with 5 line context (5 lines before and after)
  • watch(expr) - Add expression to watch list
  • unwatch(expr) - Remove expression from watch list
  • watchers - List all watchers and their values (automatically listed on each breakpoint)
  • repl - Open debugger‘s repl for evaluation in debugging script‘s context

  repl模式下可以輸入變數名查看變數內容

舉例:1. node debug

 

  從第一行代碼開始進入斷點,命令n進入下一行

2. node --debug

cmd1  開啟調試連接埠

 

cmd2   串連調試連接埠

 

設定斷點,取消斷點

 

cmd1 過了一分鐘才繼續列印

 

用進程id的方式串連調試模組

 

可以看到pid為4436

 

repl模式

 

參考資料:

http://www.cnblogs.com/tzyy/p/5028348.html

http://www.cnblogs.com/dolphinX/archive/2013/12/22/3485345.html

【轉】node.exe調試JavaScript代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.