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

Reply via email to