2017-07-12 40 views
0

背景:調試如何使德爾福APPLIC看到真正的註冊表 - 而不是虛擬的

我開發一個Windows服務和使用註冊表來獲取參數(使用下面的關鍵參數服務條目)。

德爾福安裝爲AppWave應用程序(長的故事我不能在這裏告訴),因此,當調試它進入一個虛擬副本[1],而不是實打實的[2]。

我檢測到使用 Process Monitor記錄服務的註冊表活動之後。如果我運行服務外部德爾福,應用程序 正常訪問真正的密鑰。

問題:有一些方法來circunvent流的核心和調試應用程序 訪問實際的註冊表項?

注意到MODS:因爲沒有AppWave標籤,我不能包含它 - 我試過了。

  1. 虛擬副本:HKEY_LOCAL_MACHINE\software\Embarcadero\StreamingCore\Profiles\fabricio\Applications\{<<GUID>>}\Virtualization\Keys\whklm\SYSTEM\CurrentControlSet\services\[service]\Parameters]
  2. 實打實的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\[service]\Parameters
+0

將它轉換成答案,@RemyLebeau ... –

回答

0

我沒有找到方法。遠程調試器方法 - suggested by Remy's answer - 在同一臺機器上使用時,受到StreamingCore服務影響。

所以使用的方法是記錄進行調試。爲此,使用CodeSite Express(這非常方便幷包含在Delphi中)進行日誌記錄。

1

AppWave的整點是沙箱和虛擬化應用。因此,不,AFAIK您的服務無法在沙箱內運行時繞過AppWave的註冊表虛擬化。

我從來沒有使用AppWave自己,但假設它允許網絡連接,您可能不得不訴諸使用IDE的remote debugger。在沙箱外部運行服務,然後讓IDE連接到遠程調試器,然後調試器可以調試服務進程。

+0

試過了,但沒有奏效。使用CodeSite進行調試。 –