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". > > -- > 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
