作者s4300026 (s4300026)
看板C_and_CPP
標題[討論] 尋求除錯釣魚竿
時間Thu Nov 1 08:43:52 2018
是這樣的
我最近使用 C#的GUI 使用 CLR的中介dll,仲介內容為 原生C++ lib
當然
C#、CLR、C++ 的檔案都是我寫的
裡面內含錯誤是不可免
但VC難以針對 lib 和 dll 做變數追蹤
且在GUI環境下連 printf 都無法使用
造成個人找錯的困難
目前個人的解決辦法如下
建立一fopen, fclose 的class,將所有函式有興趣的地方進行 fprintf
至少要讓我知道你死在哪個function裡
雖然有助於找錯,但印出的東西總是很多很雜,我擔心用久了log.txt會開很久
想詢問有沒有更好的解決辦法?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.235.221
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1541033034.A.E6F.html
1F:→ petercoin: 我dll都用OutputDebugString寫訊息然後用DebugView看 11/01 09:09
2F:→ petercoin: DebugView是一套軟體 11/01 09:09
感謝樓上大大~~ 問一下,你是指你寫的dll內include該軟體的lib,
然後再用DebugView看嗎? 老實說用別人的dll總是忐忑忐忑的..
會不會突然就不支援了阿 QQ
3F:推 colako: google "native managed debug visual studio" 11/01 13:01
4F:→ colako: 另外,沒有 printf, 可以用 MessageBox 系列 11/01 13:03
5F:→ colako: 前兩行的文章會講混合除錯模式, 可下中斷點, 用不到上一行 11/01 13:13
感謝樓上大大~~~ GOOGLE 查詢後網址如下:
https://docs.microsoft.com/zh-tw/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2017
>>
https://preview.tinyurl.com/y9kjpwuk
開啟該功能後可追蹤到方案(solution)中的所有專案(project)
至於我指的printf是 原生C++ 的印出,而不是C#的印出
不過這並沒有關係了,因為紅圈圈到的了,這樣就夠了。
針對同solution的問題就解決了
話說我原本沒想到原來只要打個勾就可以用了
看來我小瞧VS的強大了!!
我原本還在想大家會不會走 throw exception 的路線呢!!
還是說因為 throw exception 不會用在自認為不會出錯的地方
所以除錯上不會用 throw exception?
像是 vector v;
v.at() 卻用 v[] 之類的...
※ 編輯: s4300026 (60.250.235.221), 11/01/2018 19:26:28
6F:→ petercoin: OutputDebugString是微軟的API 所以不用擔心XD 11/02 09:52
7F:→ s4300026: 太好啦,突然整個使用意願大增~~~ <3 11/02 12:14