1. 程式人生 > >關於 MonoDevelop on Linux 單步除錯問題的解決

關於 MonoDevelop on Linux 單步除錯問題的解決

在 MonoDevelop 中預設是關閉對外部程式集(.dll)的除錯,可通過如下步驟來解決這個問題。

  1. 通過選單【Edit】-【Preferences】-【Debugger】進入到偵錯程式的設定頁,把“Debug project code only; do not step into framework code.”選項取消。

  2. 如果你的應用是個控制檯程式,還需要進入到該專案(滑鼠右擊該專案,在彈出選單中選擇“Options”)的【執行】設定頁中,將“運行於外部控制檯”的設定項取消掉。

  3. 但是,就算這樣也無法單步除錯進入到外部程式集,原因是還缺少Mono的除錯符檔案,即(*.dll.mdb

    )檔案。所以還需要將所有待除錯的外部程式集檔案對應的.mdb檔案拷貝到當前Host專案的“bin/Debug”目錄中。 注意:如果外部程式集更新了程式碼,記得再同步拷貝一次對應的.mdb檔案過來。

  4. 每次都手動複製還是很痛苦的,尤其是外部程式集較多的時候,所以建立一個複製指令碼還是很有必要的。 在Host專案的目錄中建立一個名為:deploy.sh 的指令碼檔案,使用命令:vi deploy.sh 然後在vi編輯器的第一行寫入:#!/bin/bash,第二行開始編寫拷貝命令。編輯完成後,記得使用命令:chmod 777 deploy.sh 去開啟其可執行屬性。

  5. 在 MonoDevelop 中進入Host專案的屬性設定對話方塊,在裡面的【構建】-【自定義命令】設定頁中新增一個“After Build“命令項:deploy.sh

至此,就可以愉快的在 MonoDevelop 中對外部庫進行單步除錯了!