我有一個C#DLL with native exports,這是從一些德爾福2009年代碼調用。 Delphi代碼使用LoadLibrary
和GetProcAddress
來訪問導出的函數。我想在運行時調試代碼的託管部分,但我遇到了麻煩。調試混合Delphi(本地)和C#代碼,得到「二進制沒有調試信息」
當我啓動應用程序時,斷點顯示正確,但未能命中。
我的當前設置如下:在Visual Studio中設置爲「啓動外部程序」 2010
- C#DLL項目,在德爾福可執行指點。
- 啓用非託管代碼調試關閉。
- 僅我的代碼在調試選項啓用(這似乎沒有什麼區別)
我試圖使非託管代碼調試,但會導致一個錯誤說「二進制建沒有調試信息」。如果我繼續,所有斷點都被禁用。
當我檢查模塊列表時,可執行文件顯示爲沒有調試符號。 Delphi不會生成一個PDB(它不能,因爲它是一個封閉規格的專有格式),但它會生成一個MAP文件。我查看了MAP-to-PDB轉換器工具,但似乎只有一個工具可以完成我所需要的工作。
我不是在調試從Visual Studio中的Delphi代碼很感興趣,因爲我已經可以做到的是,在CodeGear的Delphi的IDE,但有沒有辦法來調試運行時的託管代碼在這種情況呢?
的Delphi編譯器/連接器不產生一個TDS文件。 – Polynomial
呃,問題是關於調試託管代碼。這個答案與問題無關。 –
@Polynomial:較新的版本有一個生成外部調試文件(* .tds)的選項。 –