There is a "ios-simulator" platform. It might not do remote right now, so you 
might have to modify it.

On Oct 10, 2013, at 11:32 AM, Carlo Kok <[email protected]> wrote:

> Greg Clayton schreef op 10/10/2013 7:00 PM:
>> 
>> On Oct 10, 2013, at 8:13 AM, Carlo Kok <[email protected]> wrote:
>> 
>>> I use:
>>> m_target = m_debugger.CreateTarget(fn, archd, NULL, true, m_error);
>>> m_process = m_target.ConnectRemote(SBListener(), target, NULL, m_error);
>>> 
>>> (fn points to an executable with x86 and x86_64 in it. archd this 
>>> x86_64-apple-ios)
>>> 
>>> However the target ends up being a 32bits process. At this point the ABI 
>>> code loads 64bits and ends up crashing in some 64bits register loading code 
>>> in ABISysV_x86_64.h:
>>> 
>>> argument_register_ids[0] = reg_ctx->GetRegisterInfoByName("rdi", 
>>> 0)->kinds[eRegisterKindLLDB];
>>> 
>>> 
>>> the problem I'm having is that I don't know what architecture the target 
>>> will be before connecting. Passing no arch to CreateTarget gives this error:
>>> 
>>> "'App10' doesn't contain any 'ios-simulator' platform architectures"
>>> 
>>> I do know GDB has (and gets called for) a command that asks the process 
>>> architecture, but this doesn't seem to be used to get the abi (and probably 
>>> more things), what can I do in this case?
>> 
>> The key issue that is going wrong here is you are not specifying a
>> platform. If you know you are going to be doing remote macosx
>> debugging, then you can tell the target this when you create it. The
>> 3rd argument (NULL) in CreateTarget is the platform name. Try
>> specifying "remote-macosx".
> 
> I'm targeting iOS-Simulator actually. The x86 vs x86_64 difference is because 
> the simulator starts a different one based on what kind of simulator is 
> running at the moment. Remote-macosx doesn't support the simulator. It works 
> if I run & pass x86_64 or i386, but in this case I don't know what's running 
> (there doesn't seem to be a way to detect it) and I just pass the "best" I 
> compiled (x86_64) but it's running in 32bits mode so runs the i386 side of 
> it, then fails.
> 
> I tried ios-remote too (with a null platform) but that makes it just load the 
> i386 part of my fat executable (when reading a fat binary it somehow picks 
> the first one if none was specified and I can't find a way to delay this 
> choice until it's connected).
> 
> 
> 
> -- 
> Carlo Kok
> RemObjects Software
> _______________________________________________
> 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