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?

--
Carlo Kok
RemObjects Software
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to