But then wouldn't the appropriate way to do it be to send a request to the debugserver which would then ask its PlatformMacOSX, which would find out it's the local platform, and then call into the Host layer? Even remote debugging from MacOSX -> MacOSX, it's possible that some value returned by the host layer (we'll use the bundle directory since it was the original example) might be different on the two machines. Now your #if defined(__APPLE__) preprocessor check passes, you get the bundle directory from the host layer, and it's different from the value on the remote.
On Thu, Aug 21, 2014 at 10:07 AM, Greg Clayton <gclay...@apple.com> wrote: > > > On Aug 20, 2014, at 4:29 PM, Zachary Turner <ztur...@google.com> wrote: > > > > There are many examples of this, but just to pick one at random, > PlatformDarwin::GetSharedModule() has a codepath which calls > Host::GetBundleDirectory. This is probably the correct thing to do if it's > the local platform, but it seems to be always the wrong thing to do if this > is not the local platform. Is there something I'm misunderstanding that > makes this work? Shouldn't this kind of thing be behind an IsHost() check? > > No. If you are remote debugging a MacOSX app, the platform should still be > able to find the bundle directory. > > windows% lldb > (lldb) platform select remote-macosx > (lldb) file Foo.app > > That being said, the code that uses native code to find the bundle > directory should be placed into the Host directory and then PlatformDarwin > should check #if defined(__APPLE__) and only use the host layer if it is > running on Apple and fall back to other code when not native. > > Greg > >
_______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev