2012-03-09 35 views
0

我已經完成了第一次使用XE2(更新3)進行「遠程調試」的設置,我已經將我的大型650k行應用程序(編譯和調試良好在Win7中),並發現斷點在遠程模式下不會被擊中。一個小小的「hello world」測試項目工作正常。我已完成以下操作:無法通過Windows XP SP3目標調試大型delphi XE2應用程序跨平臺

  1. 創建VMWare Workstation虛擬機並安裝Windows XP SP3。
  2. 在XP上安裝並運行paServer。
  3. 在Delphi XE2中創建一個新的遠程配置文件指向虛擬機。
  4. 點擊'測試連接'一切正常。
  5. 右鍵單擊我通常的「調試」構建配置併爲其分配新的遠程配置文件。
  6. 在源中設置斷點。
  7. 做了一個構建,然後運行。在看到'deploy'後,我看到EXE和RSM文件被複制到虛擬機上的一個文件夾中。
  8. 該程序在我的虛擬機上運行良好,但只要運行開始,斷點將被禁用,並且不會被命中。
  9. 如果我刪除遠程配置文件並在本地運行程序,斷點工作正常。

正如我所說,一個小項目工作正常。我的RSM文件大約54M,exe大約26M。

我試過各種組合的TDS文件開/關,包括調試系統Y/N都無濟於事。有什麼方法可以找出爲什麼調試不可用?

回答

3

我不習慣回答我自己的問題,但經過更多的調查後,有證據表明這可能是由於我的項目(和它的DPROJ)已經通過幾乎evey Delphi發佈,因爲dproj的是介紹它裏面的東西正在影響我的遠程調試能力。我注意到,在一個簡單的新XE2項目中,某些項目(如TDS文件)在我的項目中沒有顯示的地方顯示爲灰色。現在我已經將我的大型項目DPR粘貼到一個新的空XE2項目中,從而創建了一個新的DPROJ和LO!它停在斷點處。

哇這些dproj是一團糟。我習慣於編輯這些東西來整理「出錯」的版本號,但我想不時需要一個乾淨的版本號。

我試圖不激動,因爲我以前見過遠程調試片狀,但我只是認爲我會發布此信息。

[完成後續工作]在部署管理器將文件複製到遠程文件之前,必須確保所有虛假* .rsm,* .tds文件都從本地輸出文件夾中刪除。如果你不這樣做,遠程調試不起作用。要檢查一切正常,你只能在目標機器上看到一個exe文件,即你的項目EXE有內部調試。應該沒有其他Delphi輸出符號或映射文件存在。

+3

僅僅重命名文件dproj並打開.dpr足夠重置所有內容。 – 2012-03-10 17:03:13

+0

@warren - 好主意,但你仍然必須重新搜索和輸出路徑,並設置「平臺符號」等。我現在試圖找到一種儘可能多地包含在dpr中的方式,例如MAINICON,清單和相對路徑,以便您的建議儘可能無痛。 – 2012-03-12 10:02:40

+0

聽起來像是一個很好用的實用程序,可能會剝奪DPROJ的所有內容,但是您希望保留這些內容。 – 2012-03-12 13:21:52

0

我在確切與布萊恩相同的場景,除了被遠程調試的應用程序在Windows 2008 x64服​​務器上,從運行Delphi XE2的i386 XP SP3調試。我的應用程序大小也相似,有42MB .rsm和28MB .exe。他的應用程序運行,但是應用程序遠程運行時,斷點未激活並顯示爲綠色。就像Brian一樣,在創建/遠程調試從頭創建的新測試x64應用程序時,我對於斷點沒有任何問題。而且我的不可調試應用程序也在過去的10年中通過各種德爾福升級。

在我的結尾刪除.dproj,.dproj.local,.deployproj和重新加載.dpr,但沒有工作。正如類似的線程所建議的那樣,將調試信息移入單獨的.tds文件不是一個選項,因爲這是一個64位應用程序。

我仍然在尋找根本原因/解決方案,但如果其他人有同樣的問題,他們並不孤單....

+1

我導致解決方案的路線是創建一個新的空白「Windows窗體」應用程序,並證明我可以調試該應用程序(例如按鈕和窗體)。當這個工作,我手動添加到我的大應用項目引用到這個新的DPR,而不使用搜索路徑。即所有文件都在DPR中明確引用。在這一點上,我發現我可以調試,即與我的文件無關,只有DPR/DPROJ的東西。注意 - 如果這一切都正常,你沒有得到一個RSM - 正常工作,我只看到由PAServer部署的EXE。確保您使用Update 4和最新的遠程工具 – 2012-07-10 15:01:13