[lldb-dev] [RFC] OS awareness in LLDB
Alexander Polyakov via lldb-dev
lldb-dev at lists.llvm.org
Wed Apr 3 10:05:50 PDT 2019
Hi lldb-dev,
Currently I'm working on an OS plug-in for multiple operating systems and
architectures, during my work, I noted a few moments I want to discuss with
the community.
1) Adding RegisterContext to SB API:
if you want your OS plug-in to support multiple architectures you need
to implement
things like *get_register_info, get_register_data...* for each
architecture.
In my mind, we could do that using RegisterContext, for example:
*get_register_info* could just call
RegisterContext::GetRegisterContextAtIndex(idx), the number
of registers could be obtained from RegisterContext::GetRegisterCount();
*get_register_data *could return SBRegisterContext instead of just
bytes, then the process of
fetching the register values might look as: for each register
SBRegisterContext::WriteRegister(reg_info, reg_value).
Please correct me if I'm missing something.
2) New lldb-mi command: -info-os
the gdb-mi documentation defines this command and there is a problem
with it. To fully
implement it, we should be able to get CPU ID a thread is running on,
but lldb
does not have an abstraction for CPU ID at all, so it becomes unreal at
least for now.
I'm going to partly implement this command for Zephyr (e.g. return some
value to indicate
that the CPU ID is undefined) and I want to know if the community is
interested in implementing
that command inside lldb-mi (at least in part).
--
Alexander
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20190403/bae1d88e/attachment.html>
More information about the lldb-dev
mailing list