Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 為現任微軟最有價值專家 (MVP)、微軟認證講師 (MCT) 、Blogger、Youtuber:記錄軟體開發的點點滴滴 著重於微軟技術、C#、ASP .NET、Azure、DevOps、Docker、AI、Chatbot、Data Science

[開發工具小技巧]應該怎麼用Visual Studio執行和進入debug比較省時間?搭配ReAttach套件快速進入Debug模式

image
圖片來源:https://pixabay.com/en/confused-muddled-illogical-880735/ 和 https://blog.xebialabs.com/2016/03/21/essential-devops-terms/

最近在和同事聊天的時候,才發現到其實雖然我一直以來「以為」有多次強調該如何用Visual Studio run及進入debug比較節省時間, 但是其實有些同事還是不知道。

因此,準備一系列我個人認為大家應該都會的開發工具小技巧,這篇將會從開發每天都會做的事情,run及debug開始:在用Visual Studio開發的時候, 到底應該怎麼run和debug才是最有效率的方式,以及如何使用免費的套件ReAttach來讓debug流程更加的容易。

一般的開發及debug流程

在我以前剛學會Visual Studio開發的時候,那個時候我學習到的做法都是:

  1. 改程式
  2. 要測試的時候按下快速鍵:F5也就是 Start Debugging的動作(綠色的按鈕)
  3. 開始測試功能,如果需要修改,由於在debug模式,需要先停下debug模式,之後才能改
  4. 重複第一個步奏

在這個流程裡面,貌似沒有問題,但是實際上:

  1. 執行速度慢:debug模式因為要能夠debug,因此會load很多其他東西,因此造成了執行起來速度變慢
  2. 需要消耗更多資源:同上一條一樣,因為load的東西多因此消耗的記憶體也多
  3. 修改的流程消耗更多時間:由於在debug模式是無法修改,因此需要停下來才能夠修改

如何優化run及debug的方式

既然上面知道了一般的做法有什麼問題,那能夠怎麼優化呢?以下分幾個步奏來執行:

  1. 以 Start Without Debugging(快速鍵 Ctrl+F5)的執行方式替代 F5
  2. 當需要debug的時候以Attach Process方式進入debug模式
  3. 以套件ReAttach讓attach process的流程更容易

以 Start Without Debugging(快速鍵 Ctrl+F5)的執行方式替代 F5

很多時候把網站run起來的目的只是為了測試功能,因此其實不需要進入Debug模式。

題外話:養成不依賴debug功能其實是一個好的習慣,有發生錯誤先思考一下問題發生原因, 而不是直接debug一步一步走,在整個的思維鍛煉上其實很有幫助。

所以養成以Ctrl + F5替代F5

image
F5及Ctrl + F5在Visual Studio選項位置

不過如果測試過程要改東西怎麼辦?

這個時候可以用 Build (快速鍵 F6)來編譯修改內容。

如果有遇到Build好像沒有很成功,這個時候可以用Clean,或者Rebuild(Rebuild本質上就是clean + build)。

image
Build、Clean及Rebuild的Visual Studio位置
有些修改其實不需要build,因為這些是動態build出來。一般來說這種類型都是View。例如Asp.net裡面的aspx或者Razor view的cshtml。所以如果修改這種類型,連呼叫build都不需要,只需要存檔然後刷新頁面即可。

透過養成Ctrl + F5的習慣,可以減少很多啟動debug,然後停掉debug在修改所花的時間。

不過下一個問題是,如果遇到問題需要debug怎麼辦?

當需要debug的時候以Attach Process方式進入debug模式

當Visual Studioa用Start Without Debugging把網站run起來之後,這個網站會被IIS Express host起來。

而Visual Studio可以透過Attach to Process (快捷鍵: Cltr+Alt+P)attach到IIS Express達到用Visual Studio啟動debug模式。

啟動 Attach To Process 的畫面
image
從Debug Toolbar找到
選擇 iisexpress.exe
Available Process找到iisexpress.exe,如果在清單裡面沒有,可以勾選Show process from all users
image
選擇iisexpress.exe

Attach完了之後,Visual Studio就會進入到一般的debug模式,剩下就和一般debug沒有什麼兩樣。

如果debug完了,停下來,網站是不會停,這個和一般F5不一樣,如果是F5啟動的,當停下debug模式的時候, 整個網站也會停下來
如果attach上去之後,發現無法下中斷點,那麼最有可能是build沒有成功或者沒有乾淨,最好就是先clean,在Ctrl + F5
了解了Attach To Process,換個角度說其實也可以attach到一般IIS網站,甚至Remote Debug。這個完全做的到,但是這篇就不介紹了。

以套件ReAttach讓attach process的流程更容易

了解了Attach To Process之後,下一個問題就是,每一次都要開那個畫面然後找到iisexpress真的很麻煩,是否有什麼方式讓找這個process更加容易呢?

有人因此建立了一個套件,ReAttach,甚至非常佛心的Open Source以及以Free的方式發佈出來。

ReAttach使用非常簡單,安裝了之後,在工具列會有一個紫色的播放按鈕可以按:

image
ReAttach的功能

在這個功能裡面,可以按旁邊下三角形看到最近的4筆曾經有Attach過的Process。

最新Attach的Process會以第一筆呈現。

只需要選擇要Attach的Process即可。

如果說上面的Process都沒有目前想要Attach的,那麼可以先用F5,然後停下來之後剛剛那個process就會出現在第一筆。

結語

如果養成了只以Ctrl+F5的方式在Run程式,真需要debug的時候在用Attach Process的方式進入debug模式, 不止能夠讓整個開發流程速度更快,也能夠鍛煉不debug情況下嘗試解決問題。

希望透過這篇,如果還沒養成這個習慣的可以先試試看,並且裝ReAttach讓整個流程變得更加順利。

如果有不同且能夠更節省開發時間的流程,也請用留言方式互相切磋切磋。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus