Ok. So it looks like x86_64h is not currently supported by llvm::Triple. I will find out about adding support for it. If it's possible to get that into llvm::Triple, I'll post a patch that updates Host::GetArchitecture() to use it, and then maybe one of you guys can test it in the various configurations.
Thanks! On Tue, Aug 19, 2014 at 2:18 PM, <[email protected]> wrote: > Sorry, I didn't read closely enough. Greg's answer is actually relevant > to your question... > > Jim > > > On Aug 19, 2014, at 2:04 PM, Zachary Turner <[email protected]> wrote: > > > > In this case though, we're talking about Host::GetArchitecture, which is > a static function and is supposed to report information about the OS that > the debugger is running on, and not the target that the debuggee is running > on. Does this mean that a single instance of LLDB cannot debug both an app > running in the simulator, and an app running in darwin? So you have to > exit LLDB and start a new instance of LLDB in "simulator mode" or "mac > mode"? Or am I misunderstanding? > > > > > > On Tue, Aug 19, 2014 at 1:58 PM, <[email protected]> wrote: > > Mac OS X is more complex because lldb also supports apps running in the > iOS simulator on OS X. Those apps are x86 or x86_64 processes, but their > OS is "ios", not "darwin". The platforms and a bunch of other fiddly bits > rely on getting the OS right as well. > > > > Jim > > > > > On Aug 19, 2014, at 1:52 PM, Zachary Turner <[email protected]> > wrote: > > > > > > Looking over the apple code path for Host::GetArchitecture, I'm a > little confused about why all this custom logic is needed. What are the > situations in which llvm::sys::getDefaultTargetTriple() will return > something other than what we want? Specifically, a concrete example might > help illustrate the problem. > > > > > > I understand from the comment that it has something to do with being > able to run 32 and 64-bit executables in the same operating system. Isn't > this the case everywhere? I can run 32-bit executables on Windows x64 as > well. llvm::Triple has a function called get32BitArchVariant() that I > thought returns a 32-bit triple for this case. Does this not work for some > Apple configuration? > > > > > > It seems like this logic should be able to be sunk into llvm::Triple > somehow. Conceptually speaking, it seems like there should be two cases: > > > > > > 64-bit: > > > host_arch_64 = llvm::Triple::getDefaultTargetTriple() > > > host_arch_32 = > llvm::Triple::getDefaultTargetTriple().get32BitArchVariant() > > > > > > 32-bit > > > host_arch_64 = <empty> > > > host_arch_32 = llvm::Triple::getDefaultTargetTriple() > > > > > > Why doesn't this work? > > > _______________________________________________ > > > lldb-dev mailing list > > > [email protected] > > > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > > > > > >
_______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
