如何使调试的 Delphi 应用程序看到真实注册表 - 而不是虚拟注册表
How to make Delphi applic debugged see the REAL registry - and not the virtual one
背景:
我正在开发一个 windows 服务并使用注册表获取参数(使用服务条目下方的关键参数)。
Delphi 作为 AppWave 应用程序安装(长话短说 我不能在这里说 )因此在调试时它会转到虚拟副本 [1] 而不是真正的交易 [2]。
我检测到在使用服务的登录注册表 activity 之后
过程监视器。如果我运行服务外面Delphi,应用
正常访问真实密钥。
问题:有一些方法可以绕过 Streaming Core 并调试应用程序
访问真正的注册表项?
模组注意事项: 因为没有 AppWave
标签,我无法包含它 - 我试过了。
- 虚拟化副本:
HKEY_LOCAL_MACHINE\software\Embarcadero\StreamingCore\Profiles\fabricio\Applications\{<<GUID>>}\Virtualization\Keys\whklm\SYSTEM\CurrentControlSet\services\[service]\Parameters]
- 正品:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\[service]\Parameters
AppWave 的全部意义在于沙箱和虚拟化应用程序。所以不,据我所知,当 运行 在沙箱内时,您的服务无法绕过 AppWave 的注册表虚拟化。
我自己从未使用过 AppWave,但假设它允许网络连接,您可能不得不使用 IDE 的 remote debugger。 运行沙箱外的服务,然后让IDE连接到远程调试器,远程调试器就可以调试服务进程了。
我没有找到方法。远程调试器方法 - - 当在同一台机器上使用时,会受到 StreamingCore 服务的影响。
所以使用的方法是记录日志来进行调试。为此,使用 CodeSite Express(非常方便,包含在 Delphi 中)进行日志记录。
背景:
我正在开发一个 windows 服务并使用注册表获取参数(使用服务条目下方的关键参数)。
Delphi 作为 AppWave 应用程序安装(长话短说 我不能在这里说 )因此在调试时它会转到虚拟副本 [1] 而不是真正的交易 [2]。
我检测到在使用服务的登录注册表 activity 之后 过程监视器。如果我运行服务外面Delphi,应用 正常访问真实密钥。
问题:有一些方法可以绕过 Streaming Core 并调试应用程序 访问真正的注册表项?
模组注意事项: 因为没有 AppWave
标签,我无法包含它 - 我试过了。
- 虚拟化副本:
HKEY_LOCAL_MACHINE\software\Embarcadero\StreamingCore\Profiles\fabricio\Applications\{<<GUID>>}\Virtualization\Keys\whklm\SYSTEM\CurrentControlSet\services\[service]\Parameters]
- 正品:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\[service]\Parameters
AppWave 的全部意义在于沙箱和虚拟化应用程序。所以不,据我所知,当 运行 在沙箱内时,您的服务无法绕过 AppWave 的注册表虚拟化。
我自己从未使用过 AppWave,但假设它允许网络连接,您可能不得不使用 IDE 的 remote debugger。 运行沙箱外的服务,然后让IDE连接到远程调试器,远程调试器就可以调试服务进程了。
我没有找到方法。远程调试器方法 -
所以使用的方法是记录日志来进行调试。为此,使用 CodeSite Express(非常方便,包含在 Delphi 中)进行日志记录。