> On Aug 21, 2014, at 11:03 AM, Zachary Turner <ztur...@google.com> wrote: > > 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.
You might not be connected, nor are you required to be connected to a remote platform for it to be able to resolve a bundle executable given a bundle "c:\My Documents\Foo.app", or be able to find the bundle directory for "c:\My Documents\Foo.app\Contents\MacOS\Foo" by returning "c:\My Documents\Foo.app". No connection is required. The platform should be able to do the right thing. If you compile on a Mac, you can use the host layer. If you don't we will need to implement that functionality manually. > > > 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