2020年4月18日 星期六

用「附加至處理程序(Attach to Process ...)」Debug

今天來分享一個好用的dll debug方式!

之前在上海幫忙的時候,
jim就有教過我們用「附加至處理程序」(Attach to Process ...),
並跟我們說這個功能很好用,
不過當時並沒有體會到這個功能好用的地方。

在上海負責的案子比較特殊,
是用CCF (CIM Control Framework)的框架,
而那個框架是用分散式架構,分程三支程式;分別放在三台電腦中,
重點是開啟是有順序的。
若用一般debug的手法會很難debug,
直接按下F5,然後下斷點,會不好debug,
除了程式啟動的順序外,
彼此的dll都有一些關聯,這樣做可能會出問題。
所以一直以為,
那個「附加至處理程序」(Attach to Process ...),
是因為CCF的架構不好debug才使用的。

但今天才發現,這個功能真的爆幹好用!
一般來說,如果方案較大,裡面包含有dll的專案,
在debug dll時,就要將dll設成啟始專案,
並到屬性頁設定使用什麼執行檔debug

這樣有個問題 ─ 如果在debug時,發現某個錯誤是在dll中,
就要關掉程式再重現一次bug,超麻煩!
(p.s. 如果是用隱式連結(implicit linking),好像可以直接進去;但若用顯示連結(explicit linking)就不會)。
但用附加至處理程序就沒有這個問題,
它可以將整個專案直接附加到程式上,
超方便!

而且像我們公司,在演算法運算的電腦上也是用分散式,
如果問題出在不同的程式上,
每次都要關掉程式並用程式碼跑,超不方便的,這個也可以應用在上面!

方法如下:
Step1. 打開執行檔

Step2. 在visual studio中按「偵錯」(Debug) -> 「附加至處理程序」(Attach to Process ...)

Step3. 選擇執行檔即可
接著就可以下斷點偵錯囉!

這個方法是可以跨專案的,
若該方案是由不同的語言的專案所組成,
是可以切換的喔!

其他相關資料














這封郵件來自 Evernote。Evernote 是您專屬的工作空間,免費下載 Evernote

沒有留言:

張貼留言