接續討論 debugging,今天來分析 launch.json
的組成。
首先,來看看啟動偵錯模式後,vs code 預設的 launch.json
的內容:
{
// 使用 IntelliSense 以得知可用的屬性。
// 暫留以檢視現有屬性的描述。
// 如需詳細資訊,請瀏覽: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "啟動程式",
"program": "${workspaceFolder}/samples/node/hello/app.js"
}
]
}
結構的組成,以 configurations
為主,這是一個陣列,可以放置不同的偵錯項目。
configurations
內的物件,其屬性為偵錯的相關設定:
type
:執行偵錯的語言,例如:node
、chrome
、go
、cppdbg
、Ruby
。request
:啟動 launch.json
的方式,只有兩種。
attach
:
launch
:
launch.json
啟動(launch)程式後,偵錯將會自動附著在剛啟動的程式內。name
:選擇要執行哪一個偵錯項目時,顯示的名稱。
program
:啟動偵錯時,要執行程式(需要填寫路徑)。接著,來了解如何修改 configurations
。
開啟 launch.json
後,注意畫面的右下角
點擊後會跑出選單,提供目前有支援的偵錯內容。
如果沒有自己需要的語言,記得去 extension 找尋語言包。
項目 | 功能 |
---|---|
type |
如上所述。 |
request |
如上所述。 |
name |
如上所述。 |
屬性 | 功能 |
---|---|
preLaunchTask |
啟動偵錯前,執行 task。必須設定 tasks.json 才能配合。 |
postDebugTask |
啟動偵錯前後,執行 task。必須設定 tasks.json 才能配合。 |
internalConsoleOptions |
啟動偵錯時,是否要開啟偵錯主控台。 |
debugServer |
啟動偵錯模式時,連接至另一個 port。 |
serverReadyAction |
給 web 開發用。先啟動 server 端的偵錯,接著,使用瀏覽器開啟網頁時,將會觸發偵錯。 |
屬性 | 功能 |
---|---|
program |
如上所述。 |
args |
傳遞給 program 的參數,好啟動偵錯。 |
env |
環境變數。 |
cwd |
執行工作目錄的絕對路徑。 |
port |
附加到執行程式的 port。 |
stopOnEntry |
啟動偵錯後,在第一行程式碼執行中斷點。 |
console |
決定使用哪種主控台( console )。 |
屬性 | 功能 |
---|---|
windows |
當作業系統是 Windows 時,執行以下選項。 |
linux |
當作業系統是 Linux 時,執行以下選項。 |
osx |
當作業系統是 macOS 時,執行以下選項。 |
說實在的,這部分的設定繁雜,即使了解相關項目的功能,也不敢保證能完全上手。
因此要熟悉使用偵錯功能,方法如同寫程式的老話:
學習寫程式的方法就是去寫程式。
學習寫偵錯設定的方法就是去寫偵錯設定。
請問如果我有一段指令 ex. php -S localhost:8000 -t public
這也可以用於 launch.json
嗎