每次要遠程調試的時候都要看半天的xe2英文幫助文檔,今天正好有點時間,把它寫下來。
一、概述:
首先說明一下,c++ builder 遠程調試有兩種方式的,一種是被稱為是老式的調試方法,這種方法是在遠程機器上安裝Debugger 也就是其實也就是運行PAServer的rmtdebug163.exe來運行調試的,但是這種方法貌似只能以啟動進程的方式調試程序,而不能附加已經存在的進程。而今天我講的重點是新的遠程調試,同時它的功能不僅僅是用在調試,還可以用在跨平台開發當中。原方名字為:The new remote and cross-platform debugging solution,它是用一個Platform Assistant 和一個 remote profile來達到到遠程調試的目的。
本文是拿c++ builder xe2為例寫的,但絕大多數內容也適用於delphi xe2 並且可以很容易的推廣到 xe3 xe4 等版本。
二、具備條件
由於embarcadero rad studio 遠程調試都是建立在socket通信基礎上的。
所以調試機與被調試機必須是網絡連通的,被調試機上有開發機上生成的調試信息符號文件 *.tds (delphi 是 *.rsm)。
可執行文件(*.exe或*dll)你編譯生成之后必須復制到被調試機器上
三、部署
1.首先在遠程機器(被調試程序所在的機器)上安裝PAServer。我的安裝文件在 D:\Program Files (x86)\Embarcadero\RAD Studio\9.0\PAServer\setup_paserver.exe
2.在被調試機器上安裝好之后運行paserver.exe出現命令提示符界面調試讓你輸入密碼,如果不設置密碼直接按回車即可。
3.在調試機器上的c++ builder xe2 上點擊菜單->Tools 然后打開找到Remote Profiles窗口如下圖所示
點擊add增加一個remote profile需要填寫以下幾項
profilename:名字而已任意寫我這里寫為teet
platform:這里選擇你程序所運行的平台如win 64 或win 32 、ios X等
然后下一步:HostName填寫被調試機器的ip地址,PortNumber:默認的,下面密碼就填你剛才在被調試機器上那個命令提示符里設置的密碼。之后點擊Test connection測試一下是否OK,繼續點下一步后直接Finish。完成后如下圖所示,然后點擊OK。
好了,一個remote profile就增加好了。下面就可以調試了。
四、調試
1.附加已經運行的進程
點擊菜單 Run->Attach to Process按下圖選擇
按上圖操作之后遠程機器上的進程就顯示出來了,這樣就實現了遠程附加調試進程了。這里說明一點,如果要進行源碼調試並且要在源碼上設置斷點什么的,必須把在編譯的時候生成的調試信息符號文件復制到被調試機器上。
2.遠程創建被調試進程
點擊菜單 Run->Load Process 在左邊選擇remote 然后設置好Remote path(遠程調試機器上的被調試程序所有路徑)和remote host(同上面選擇host的方法)。Params和Working directory是設置命令行和工作目錄的,下面after load根據自己需要選擇就可以了