[lldb-dev] Load fat executable when uncertain about the target process' architecture
Carlo Kok
ck at remobjects.com
Thu Oct 10 08:13:09 PDT 2013
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
More information about the lldb-dev
mailing list