使用WebStorm自帶的Debug調(diào)試TS代碼

(本章使用WebStorm調(diào)試node項(xiàng)目中的Ts代碼)

調(diào)試

程序調(diào)試,就是在程序中設(shè)置斷點(diǎn),讓程序在運(yùn)行時(shí),在斷點(diǎn)處能夠停下來,檢查相關(guān)變量和表達(dá)式的值,以判斷邏輯上出錯(cuò)的位置,并能夠進(jìn)行程序跟蹤,尋找邏輯上出錯(cuò)的位置,并加以改正。

優(yōu)點(diǎn)

  • 可以看到代碼的運(yùn)行順序是否和預(yù)期一致
  • 可以在運(yùn)行的同時(shí)看到每一步的結(jié)果

步驟

1.啟動(dòng)Debug

1)、右鍵文件的空白處(此種適用于單個(gè)文件的運(yùn)行調(diào)試)
一.jpg

2)、點(diǎn)擊右上方綠色的小烏龜(此種適用于整個(gè)項(xiàng)目的調(diào)試運(yùn)行,前提是需要配置啟動(dòng)文件和啟動(dòng)命令)

2.設(shè)置啟動(dòng)文件和啟動(dòng)命令

在WebStorm右上角找到這個(gè)下拉框點(diǎn)擊
添加配置

進(jìn)入該頁面后點(diǎn)擊"+"號(hào)可以自己選擇創(chuàng)建對(duì)應(yīng)的項(xiàng)目配置
選擇對(duì)應(yīng)的項(xiàng)目進(jìn)行配置

再之后把項(xiàng)目啟動(dòng)文件路徑和啟動(dòng)命令(根據(jù)自己項(xiàng)目而定)寫入對(duì)應(yīng)的配置行即可保存退出
寫入啟動(dòng)命令

這時(shí)可以看到右上角變成了剛才配置的文件,并且后面的運(yùn)行按鈕和Debug按鈕變成綠色可點(diǎn)擊,點(diǎn)擊運(yùn)行即可啟動(dòng)項(xiàng)目,但Debug需要進(jìn)一步設(shè)置才能看到效果。
6BC62C692DFF8A1A4461C38899F0A0F1.jpg

3.斷點(diǎn)

顧名思義就是在代碼某一處打上了斷點(diǎn),當(dāng)程序跑到你設(shè)置的斷點(diǎn)位置處,則會(huì)中斷下來,此時(shí)你可以看到之前運(yùn)行過的所有程序變量。

(PS:因?yàn)門s代碼實(shí)質(zhì)上是先編譯成js文件再去執(zhí)行,所以斷點(diǎn)需要打在對(duì)應(yīng)的js文件上,一定要找準(zhǔn)想斷點(diǎn)的Ts文件對(duì)應(yīng)的位置,這點(diǎn)是最麻煩的事情了)
斷點(diǎn)

只需要在文件的左側(cè)行數(shù)位置左鍵點(diǎn)擊一下出現(xiàn)如圖的紅點(diǎn)即可,再次點(diǎn)擊取消

4.啟動(dòng)

如果是單個(gè)文件的運(yùn)行,啟動(dòng)后會(huì)在斷點(diǎn)處卡住。如果是啟動(dòng)項(xiàng)目,則需要訪問對(duì)應(yīng)的路由接口才能觸發(fā)斷點(diǎn)。


觸發(fā)

圖中藍(lán)色行是觸發(fā)端點(diǎn)行,此時(shí)程序會(huì)停留在此處,并且可以在對(duì)應(yīng)的行末或者控制臺(tái)看到之前的全部變量。

5.繼續(xù)執(zhí)行

首先是側(cè)邊功能按鈕:


功能按鈕

其次是重要的頂部功能按鈕:

頂部功能按鈕
  • Step Over:在單步執(zhí)行時(shí),在函數(shù)內(nèi)遇到子函數(shù)時(shí)不會(huì)進(jìn)入子函數(shù)內(nèi)單步執(zhí)行,而是將子函數(shù)整個(gè)執(zhí)行完再停止,也就是把子函數(shù)整個(gè)作為一步。有一點(diǎn),經(jīng)過我們簡單的調(diào)試,在不存在子函數(shù)的情況下是和Step Into效果一樣的(簡而言之,越過子函數(shù),但子函數(shù)會(huì)執(zhí)行)。
  • Smart Step Into:進(jìn)入自己編寫的函數(shù),不進(jìn)入系統(tǒng)函數(shù),很少用到。
  • Step Into:單步執(zhí)行,遇到子函數(shù)就進(jìn)入并且繼續(xù)單步執(zhí)行(簡而言之,進(jìn)入子函數(shù))。
  • Force Step Into:強(qiáng)制進(jìn)入,在調(diào)試的時(shí)候能進(jìn)入任何方法。
  • Step Out:當(dāng)單步執(zhí)行到子函數(shù)內(nèi)時(shí),用Step Out就可以執(zhí)行完子函數(shù)余下部分,并返回到上一層函數(shù)。
  • Run to Cursor:回到光標(biāo)處,用在循環(huán)內(nèi)部時(shí),點(diǎn)擊一次就執(zhí)行一個(gè)循環(huán)。

6.控制臺(tái)

Console

Debugger Console 里面可以用來輸出一些變量進(jìn)行下一步操作。

總結(jié):F7進(jìn),F(xiàn)8下,F(xiàn)9跳。即設(shè)置好斷點(diǎn),debug運(yùn)行,然后 F8 單步調(diào)試,遇到想進(jìn)入的函數(shù) F7 進(jìn)去,想出來在 shift + F8,跳過不想看的地方,直接設(shè)置下一個(gè)斷點(diǎn),然后 F9 過去??偟膩碚fIDE自帶的這個(gè)Debug功能還是很方便調(diào)試的,這樣可以避免在代碼里使用console多處輸出,有可能提交代碼時(shí)忘記刪除等等問題。不過因?yàn)楣P者使用的是Ts,所以需要在對(duì)應(yīng)的Js文件中斷點(diǎn)才可以使用 -_- 囧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容