> I'm puzzled by a few uses of amd64 vs. 386 register contexts. > > In POSIXThread::GetRegisterName (and a few other places in that file) it > reads the host architecture in order to decide what kind of context to > create. Is this right? Surely it should be using the target's architecture > instead?
Yes, when we support remote targets, then we'll have to use the target's architecture. Currently, the i386 register context is just a stub. As Daniel mentioned below, ptrace deals with a 64-bit register set, and i386 applications use register halves. We've tested with an i386 target using the x86-64 build of LLDB. Cheers, - Ashok -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Richard Mitton Sent: Sunday, July 28, 2013 8:05 PM To: Malea, Daniel Cc: [email protected] Subject: Re: [lldb-dev] Strange x86_64 RegisterContext behaviour Ok thanks, that makes sense (well, kinda). Malea, Daniel wrote: > We use the host arch to determine which register context to create because > that's the way ptrace behaves -- if ptrace is called from a 64-bit > application (LLDB) it fills a 64-bit register structure regardless of the > architecture of the inferior. LLDB internally then converts this to 32-bit > regs as needed based on the target arch. At least that's my understanding... > > That's not to say there might not be a better way to do this; I believe there > was a thread about this topic not too long ago. > > > Cheers, > Dan > > > > On 2013-07-26, at 9:12 PM, "Richard Mitton"<[email protected]> wrote: > > >> I'm puzzled by a few uses of amd64 vs. 386 register contexts. >> >> In POSIXThread::GetRegisterName (and a few other places in that file) it >> reads the host architecture in order to decide what kind of context to >> create. Is this right? Surely it should be using the target's architecture >> instead? >> >> And in RegisterContext_x86_64::ConvertRegisterKindToRegisterNumber, it >> switches based on the target's architecture. But surely the target's >> architecture _has_ to be eCore_x86_64_x86_64, otherwise we wouldn't have >> created a 64-bit register context? >> >> Please let me know if I'm just misunderstanding how it should work :-) >> >> -- >> Richard Mitton >> [email protected] >> >> _______________________________________________ >> 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 _______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
