0

Background:

I'm developing an windows service and using the registry to get the parameters (using the key Parameters below the service entry).

Delphi is installed as an AppWave app (long story I cannot tell here) and therefore when debugging it goes to an virtualized copy [1] instead of the real deal [2].

I detected that after going logging registry activity of the service using Process Monitor. If I run the service outside Delphi, the application access the real key normally.

Question: there's some way to circunvent Streaming Core and debug the app accessing the real registry key?

Note to mods: since there's no AppWave tag, I could not include it - I tried.

  1. Virtualized copy: HKEY_LOCAL_MACHINE\software\Embarcadero\StreamingCore\Profiles\fabricio\Applications\{<<GUID>>}\Virtualization\Keys\whklm\SYSTEM\CurrentControlSet\services\[service]\Parameters]
  2. Real deal: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\[service]\Parameters
Fabricio Araujo
  • 3,810
  • 3
  • 28
  • 43

2 Answers2

1

The whole point of AppWave to is sandbox and virtualize applications. So no, AFAIK your service cannot bypass AppWave's Registry virtualization while running inside of the sandbox.

I've never used AppWave myself, but assuming it allows network connections, you may have to resort to using the IDE's remote debugger. Run the service outside of the sandbox, and then have the IDE connect to the remote debugger, which can then debug the service process.

Remy Lebeau
  • 555,201
  • 31
  • 458
  • 770
0

I didn't found an way. The remote debugger approach - suggested by Remy's answer - when used on the same machine ended affected by the StreamingCore service.

So the approach used is logging to do the debugging. For that, used CodeSite Express (which is very handy and included in Delphi) to do the logging.

Fabricio Araujo
  • 3,810
  • 3
  • 28
  • 43