我有一個C#服務正在調用最初用VC6編寫的C DLL。調試本機代碼
我試圖檢查DLL中有一個錯誤。
經歷了一場惡夢,試圖讓調試工作後,我最終將DLL添加到包含C#服務的VS2005解決方案,並添加了必要的_CRT_SECURE_NO_WARNINGS
。
使用'installutil.exe'工具註冊服務的調試版本。
我可以讓調試器在通過調用System.Diagnostics.Debugger.Break();
進入dll的那一行之前中斷。我在網上找到了一些關於加入調試非託管代碼的指令,並啓用了'啓用非託管代碼調試'複選框,我也嘗試啓用選項 - >調試 - >本機'加載DLL導出'和'啓用RPC調試'(即使它不是COM)。我也已經將debug dll和.pdb複製到與服務相同的bin目錄中。
但是,非託管代碼並沒有進入到我真正需要的地步。
UPDATE:我發現DLL屬性中的調試類型,並根據幾個網站上的建議將其設置爲「混合」,但無濟於事。
UPDATE2:我的項目現在將debug dll和pdb發送到與調試服務相同的目錄。仍然無法調試該DLL。
這是一項服務 - 您無法將應用程序作爲應用程序運行。 – 2010-03-26 11:54:35
呵呵,我在想這個。我對恐懼的服務瞭解不多。如何在沒有DLL問題的情況下調試服務? – 2010-03-26 12:04:55
另外,如果你不能通過任何其他方式獲得這個工作,你可以編寫一個非常簡單的C#應用程序來調試DLL。 – 2010-03-26 12:13:09